gpt4 book ai didi

java - 尝试字符串中的单独单词 - 在我的索引上出现越界异常

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

我能够编译,但在到达第 12 行时遇到运行时错误,其中显示 char x = input.charAt(i); 我不明白为什么会出现此错误。与charAt(x)的位置有关吗?

Exception in thread "main" java.lang.StringIndexOutOfBoundsExceptio... String index out of range: 12 at java.lang.String.charAt(String.java:658) at HW12.main(HW12.java:12)

import java.util.Scanner;
public class HW12 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a sentence in the following format: 'EnterASentenceInTheFollowingFormat.'");
String input = keyboard.nextLine();
StringBuilder token = new StringBuilder();

for (int i = 0; i <= input.length(); i++) {
char x = input.charAt(i);
if (i == 0) {
token.append(x);
} else if (Character.isLowerCase(x)) {
token.append(x);
} else if (Character.isUpperCase(x) && i > 0) {
token.append(" ");
}
}

System.out.println(" " + token);
}
}

最佳答案

Java 从 0 开始索引,因此这意味着字符串中的最后一个字符将位于 length() - 1 处。因此,如果您有一个包含 12 个字符的字符串,则最后一个字符将位于索引 11 处。所以您必须在这里替换小于等号:

for (int i = 0; i <= input.length(); i++) {

像这样的小于号:

for (int i = 0; i < input.length(); i++) {

因此,您只能获取 input.length() - 1 以内的所有字符。

关于java - 尝试字符串中的单独单词 - 在我的索引上出现越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976317/

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