【发布时间】:2022-01-01 12:44:18
【问题描述】:
以下代码应该给我一个字符串,该字符串由句子中空格后的所有字符连接而成:
public class Main {
public static void main (String[] args) {
System.out.println(generateFromSentence("Hello World!"));
}
public static String generateFromSentence(String sentence) {
String output = String.valueOf(sentence.charAt(0));
for (int i = 0; i <= sentence.length(); i++) {
if (sentence.charAt(i) == ' '){
String following = String.valueOf(sentence.charAt(i+1));
output = output.concat(following);
}
}
return output;
}
}
不幸的是它抛出:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 12
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at Main.generateFromSentence(Main.java:9)
at Main.main(Main.java:3)
我不明白为什么索引会超出范围,在
String output = String.valueOf(sentence.charAt(0));
我指定索引 0 - 应该是我的字符串的第一个字符,对吗?
已经谢谢了。
【问题讨论】:
标签: java string error-handling concatenation