java - 将 .txt 文件传输到数组时出错(线程异常)
问题描述
我正在尝试将一个文本文件传输到一个二维数组,上面写着“四月是一个寒冷的日子,时钟敲了十三下”。它应该用“*”字符填充二维数组中任何未使用的空格。但是当我运行这个程序时,我收到一条错误消息,指出“线程“主”java.lang.ArrayIndexOutOfBoundsException: 6 at TwoDArray.main(TwoDArray.java:24) 中的异常”如何解决这个错误?
import java.io.FileNotFoundException;
import java.util.*;
public class TwoDArray {
public static void main(String[] args) throws FileNotFoundException {
java.io.File file = new java.io.File("2DArray.txt");
Scanner input = new Scanner(file);
int totalRow = 6;
int totalColumn = 7;
char[][] chars = new char[totalRow][totalColumn];
while (input.hasNext()) {
String word = input.next();
char[] words = word.toCharArray();
int i = 0;
for (int r = 0; r < words.length; r++) {
for (int c = 0; c < totalColumn; c++) {
if (i < words.length) {
chars[r][c] = words[i] == ' ' ? '+' : words[i];
i++;
}
else {chars[r][c] = '*';
}
}
}
for (char[] x : chars) {
System.out.println(Arrays.toString(x));
}
}
}
}
错误是:
“线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:TwoDArray.main 中的 6(TwoDArray.java:24)”
解决方案
不完全确定你在这里做什么,但不应该
for (int r = 0; r < words.length; r++) {
是
for (int r = 0; r < totalRow; r++) {
我希望那是你的问题。
推荐阅读
- javascript - 如何根据索引数组更改元素的状态?
- java - 从 java 程序执行 bat 文件时找不到文件
- c# - Swagger,NswagStudio,c#,Required = Newtonsoft.Json.Required.DisallowNull,怎么处理
- reactjs - TypeError: ShallowWrapper::state("isOpen") 要求 `state` 不是 `null` 或 `undefined`
- python - 将字典的值转换为另一个字典及其计数
- python - iterrows 没有像我预期的那样工作 - IndexError: single positional indexer is out-of-bounds
- java - 在 mark-sweep-compact 的紧凑阶段之后,空闲的内存块是否会进入 Eden?
- elixir - 是否可以合并两个单独的 ecto 查询?
- c# - IEnumerable 与列表上的 FOR-EACH
- java - Jenkins - 在自定义仪表板上流式传输实时日志