java - Java 和 StringIndexOutOfBoundsException 的问题
问题描述
我正在尝试做一项学校作业,但我有点卡在我的代码上,当我运行代码时,我得到了这个:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 25
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3756)
at java.base/java.lang.String.substring(String.java:1902)
at Demo4/d4.StringBuilder.poistaEkaSana(StringBuilder.java:32)
at Demo4/d4.StringBuilder.main(StringBuilder.java:18)
目标是使用 StringBuilder 删除名字 firstname 并在空格后打印字符。任何帮助表示赞赏。
import fi.jyu.mit.ohj2.*;
public class StringBuilder {
public static void main(String[] args) {
String nimi = Syotto.kysy("Give Lastname Firstname");
StringBuilder sb = new StringBuilder();
removeFirstWord(sb);
System.out.println("Your last name is " + sb);
String lastname = giveFirstWord(name);
System.out.println("Your last name is " + lastname);
}
public static String removeFirstWord(StringBuilder sb) {
String bs = sb.toString();
int remove= bs.indexOf(" ");
String second= bs.substring(0, remove);
return second;
}
public static String giveFirstWord(String fname) {
int s1= fname.indexOf(' ');
String d2= fname.substring(s1, 14);
return d2;
}
}
解决方案
您的班级名称与java.lang.StringBuilder
.
重命名您的班级名称(或使用 FQCN),并且
String nimi = Syotto.kysy("Give Lastname Firstname");
java.lang.StringBuilder sb = new java.lang.StringBuilder(nimi); // add argument