我想让它把每个单词打印在自己的行上。
String movie = "10 Things I Hate About You";
String g = "";
for (int letter = 0; letter < movie.length(); letter++) {
if (letter != ' ') {
g += word.charAt(letter);
} else {
g += "\n";
}
}
System.out.println(g);
但是,每次我都会被抛出这个错误。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 8
at java.lang.String.charAt(String.java:658)
at MyProgram.main(MyProgram.java:34)
7条答案
按热度按时间qyuhtwio1#
sauutmhj2#
一条带有lambda的线:
movie.codePoints().forEach( c
-> System.out.print( c == ' ' ? '\n' : (char)c ) );
toe950273#
这是一个做同样的事情一行。
fhity93d4#
你能用吗
String.replace(char,char)
方法:输出:
pbwdgjma5#
你应该检查一下
movie.charAt(letter) != ' '
如果是呢true
,您应该添加movie.charAt(letter)
至g
.输出:
更简单的解决方案:
输出:
drkbr07n6#
可以使用正则表达式拆分数组。不需要循环来检查单个字符。这将使用与正在使用的操作系统相关的行分隔符。
jhkqcmku7#
可以将字符串拆分为一个数组,并在新行中打印该数组的每个元素。