sách gpt4 ai đã đi

java - 二维数组的 OutOfBounds 异常

In lại 作者:行者123 更新时间:2023-11-29 08:38:08 25 4
mua khóa gpt4 Nike

我正在编写一个程序,查找一行文本中是否存在一对由 2 个字母组成的字母,例如,如果输入“AA”,我会在字母表 [0][0] 中加 1。当我尝试输入“aabbcc”时出现此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 32
at Freq.processLine(Freq.java:25)
at Freq.main(Freq.java:12)

当我输入“AABBCC”时出现此错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:658)
at Freq.processLine(Freq.java:23)
at Freq.main(Freq.java:12)

我不确定为什么会收到这些错误。任何帮助将不胜感激。这是我的代码:

import java.util.Scanner;

public class Freq{
private static final int ROWS = 26;
private static final int COLS = 26;
private static int[] [] alphabet = new int[ROWS][COLS];
public static void main(String[] args) {
String line;
Scanner userInput = new Scanner(System.in);
while(userInput.hasNextLine()) {
line = userInput.nextLine();
processLine(line);

}

}
public static void processLine(String line) {
line.toUpperCase();
for(int i = 0; i < alphabet.length; i++) {
for(int j = 0; j < alphabet[i].length; j++) {
for (int a = 0; a < line.length(); a++) {
char firstLetter = line.charAt(a);
char secondLetter = line.charAt(a + 1);
if (firstLetter == secondLetter) {
alphabet[firstLetter - 65][secondLetter - 65] = alphabet[firstLetter - 65][secondLetter - 65] + 1;
}
}
}
}
for (int b = 0; b < alphabet.length; b++) {
for (int c = 0; c < alphabet[b].length; c++){
System.out.print(alphabet[b][c] + " ");
System.out.println();
}
}
}
}

1 Câu trả lời

第一期在这里:

line.toUpperCase();

返回转换为大写的字符串,并保持原始字符串不变。这很清楚,因为 Java 中的字符串是不可变的。

所以你需要做的是:

line = line.toUpperCase();

另一个问题是 line.charAt(a + 1); 超出了 a = line.length() - 1 的范围。

关于java - 二维数组的 OutOfBounds 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42259004/

25 4 0
Bài viết được đề xuất: mysql左连接有2个外键
Bài viết được đề xuất: java - 如何在 Hibernate Criteria 中返回特定类型而不是 List?
Bài viết được đề xuất: java - 这是对 Java 默认接口(interface)方法的可接受使用吗?
Bài viết được đề xuất: java - 如何使用 Stream.flatMap()?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com