提问人:Nick Slack 提问时间:3/8/2023 最后编辑:Nick Slack 更新时间:3/8/2023 访问量:58
我之前在这里问了一个问题,不确定回答者的意思?[复制]
I asked a question on here earlier and am not sure what the answerer meant? [duplicate]
问:
我希望每一行在 20 个字符过后拆分,但我希望它在最近的空格处拆分,这样句子只有整个单词。
回答者说这样做:
str="some long string"
startPos=0, endPos=0
while (startPos < str.length) {
determine endPos
print substring from startPos to endPos
move startPos to endPos+1 // this is the part I am confused about.
}
我写的代码是这样的:
System.out.println("Please input a word: ");
Scanner stringScanner = new Scanner(System.in);
String input = stringScanner.nextLine();
int startPos = 0;
int endPos = 0;
while (startPos < input.length()) {
endPos = 20;
System.out.println(input.substring(startPos, endPos));
startPos = endPos + 1; //This is the part I am confused about
}
我不确定回答者将 startPos 移动到 endPos + 1 是什么意思。任何答案都会helo,谢谢。
编辑:
对不起,我忘了发布我的代码做什么:
程序现在给了我一个错误,说:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 21, end 20, length 32
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4602)
at java.base/java.lang.String.substring(String.java:2705)
at StarBorder.StarBorder.main(StarBorder.java:18)
这就是我希望它做的:
Hello there, I am
doing some coding,
I need some help
答:
-2赞
Mr.Ziri
3/8/2023
#1
在代码中,您尝试将字符串从第 21 个字符拆分到第 20 个字符,但这是不可能的。
您应该设置 .我发现你想要第 20 个字符之后的第一个空格。Java 有一个内置方法,你可以获取 char 的索引,你可以设置起始限制。例如:endPos
indexOf
String myStr = "Hello planet earth, you are a great planet.";
System.out.println(myStr.indexOf("e", 5));
/// Output 10
您可以使用:
endPos = input.indexOf(" ", 20);
评论