首页 > 解决方案 > 为什么我的扫描仪在读取文件时会创建一个额外的输入?

问题描述

我正在开发一个程序,该程序读取一个包含整个字典的文本文件,并将获取单词、发音和定义并将其添加到 AVL 树中。我正在处理读取 .txt 文件并将不同的东西(单词、定义......)存储到字符串中的循环。每当循环运行时,它都会在定义字符串中添加一个额外的输入。这是我的代码:

package text;

import java.util.*;
import java.io.*;
public class Text {
    public static void main(String args[]) throws IOException{

        File file = new File(args[0]);
        Scanner scanner = new Scanner(file);
        int cap = 0, proLine = 0;
        String word="", pro="",def="";
        String strLine;
        while (scanner.hasNext()){
            strLine = scanner.nextLine();
            if(isCaps(strLine))
                cap++; proLine = 1;
            if((isCaps(strLine)) && cap == 1)
                word = strLine;
            if(proLine == 1 && cap ==1)
                pro = strLine;
            if(isDefn(strLine)){
                def = strLine;
            }
            if(cap == 2){
                System.out.println(word+"\n"+pro+"\n"+def);
                cap = 0; 
                proLine = 0;                
            }
        }
    }
    private static boolean isCaps(String str){return (str.equals(str.toUpperCase()));}

    private static boolean isDefn(String str){return str.contains("Defn");}
}

这是我一直在使用的文本文件
“ABAFT

A*baft", adv. (Naut.)

Defn:朝向船尾;船尾;作为,去往后。

放弃

A*bai"sance, n. Etym: [用于服从;与 F. abaisser, E. abase 混淆]

定义:服从。[观察] 琼森。”

这是我每次的输出
图片

标签: java

解决方案


推荐阅读