gpt4 book ai didi

java - 使用 Scanner 类 nextLine() 方法从文件中读取单词时出现问题

转载 作者:行者123 更新时间:2023-12-01 10:30:57 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含英语单词的集合。这些单词按字母顺序书写,一行上有一个单词,没有空行,没有标点符号等。该列表如下图所示。该列表一直持续到从“z”开始的最后一个单词,并且没有任何空行

The list continues till the last word starting from 'z'. There are no empty Lines whatsoever

我制作了一个简单的程序,可以从该文件中逐行读取单词并将这些单词写入不同的文件。问题是我收到此错误

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at sd.main(sd.java:27)

只有当 nextLine() 方法在具有 if 条件的行中返回空字符串时,才会发生这种情况。但是我正在读取的文件中没有空行。如果我替换 nextLine() 的每个实例程序中使用 next() 方法,它工作完美。请告诉我导致此异常发生的详细信息。

  import java.io.* ;
import java.util.*;

public class sd {

public static void main(String[] argue) throws java.io.IOException {

char incre = 97 ;
File diction = new File("C:/Users/LoRd CuRZon/Desktop/dictionary/wordsEn.txt") ;
PrintWriter alpha_list = new PrintWriter("C:/Users/LoRd CuRZon/Desktop/dictionary/a.txt") ;
Scanner dictionary = new Scanner(diction) ;
Scanner dictionarytemp = new Scanner(diction) ;

while(dictionary.hasNextLine()) {

if((char)incre != ((dictionarytemp.nextLine()).charAt(0))) {
alpha_list.close();
incre++ ;
alpha_list = new PrintWriter("C:/Users/LoRd CuRZon/Desktop/dictionary/" + (char)incre + ".txt" ) ;
}

alpha_list.println(dictionary.nextLine());

}

alpha_list.close();
dictionary.close();
}

}

最佳答案

是您的第二个 nextLine() 导致了问题。它移动到阵列中的下一个位置。每个循环执行两次(在 while 循环中)。

所以如果你改变:

alpha_list.println(dictionary.nextLine());

alpha_list.println(incre);

你会超出界限。

关于java - 使用 Scanner 类 nextLine() 方法从文件中读取单词时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com