gpt4 book ai didi

Java 扫描器 : Getting "java.util.NoSuchElementException" error, 不知道为什么

转载 作者:行者123 更新时间:2023-11-29 05:54:37 25 4
gpt4 key购买 nike

我正在编写一个从文本文件中扫描的单词搜索程序。文本文件包含两个整数(拼图的尺寸,在本例中为 10x10),然后是拼图,然后是另一个整数(要查找的单词数量),最后是要查找的单词。我正在尝试编写代码,以便程序将执行一个 for 循环,该循环将扫描下一行,然后将字符串中的每个字符添加到二维数组中。然而,扫描仪似乎继续遍历文件并最终“越界”文件,尽管根据 for 循环,它应该运行不超过 10 次(拼图的尺寸为 10x10)

这是有问题的代码:

Scanner scan = new Scanner(new File("puzzle.txt"));
int rows = scan.nextInt();
int columns = scan.nextInt();
int [][] wordSearch = new int[rows][columns];

for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
String temp = scan.nextLine();
for (int k = 0; k < temp.length(); k++){
wordSearch[i][j] = temp.charAt(k);

}
}
}

这是拼图.txt:

  • 10 10
  • WVERTICALL
  • ROOAFLSAB
  • ACRILIATOA
  • NDODKONWDC
  • DRKESOODDK
  • 欧普泽格利夫
  • MSIIHOAERA
  • 警报器
  • KODIDEDRCD
  • 赫尔夫斯勒
  • 10
  • 找到
  • 随机
  • 侦探
  • 向后
  • 垂直
  • 对角线
  • 维基百科
  • 横向
  • 词搜索

最佳答案

However, the scanner continues seems to continue through the file and eventually "out of bounds" on the file, even though, according to the for loop, it should run no more than 10 times (the dimension of the puzzle is 10x10)

不,看看你的循环:

for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
String temp = scan.nextLine();

您正在为每一行每一列运行它。我怀疑你真的想要:

for (int i = 0; i < rows; i++) {
String temp = scan.nextLine();
for (int j = 0; j < columns; j++) {
wordSearch[i][j] = temp.charAt(j);
}
}

当然,这假设您已将每行的长度正确设置为列数 - 您可能希望在阅读该行后验证这一点。

应该引起怀疑的一件事是这个内部循环:

for (int k = 0; k < temp.length(); k++) {
wordSearch[i][j] = temp.charAt(k);
}

这会为 temp 中的每个字符覆盖相同的 wordSearch[i][j],使得除了最后一次迭代之外的所有迭代都毫无意义。

关于Java 扫描器 : Getting "java.util.NoSuchElementException" error, 不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629895/

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