我在此代码中收到此错误。我该怎么办?
//错误
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1931)
at StringExample.main(StringExample.java:18)
//代码
String s=sc.nextLine();
int first=s.indexOf("");
int second=s.lastIndexOf("");
String sur=s.substring(second+1); //18 line
String middle=s.substring(first+1,second);
String firstname=s.substring(0,first);
System.out.println(sur+""+firstname+""+middle);
答案 0 :(得分:0)
代码中second
的值很可能是字符串的最后一个索引。对于hello world
,它将是11。
现在,如果你增加该数字并将其用作字符串的第一个索引,则得到-1
,因为你的起始索引大于字符串中的最后一个索引。
从逻辑上讲,它也没有意义。您尝试从实际字符串后面的字符串中获取子字符串。
查看您的示例,我认为您应该使用indexOf(" ")
代替。它会为您提供空间索引。
答案 1 :(得分:0)
.indexOf("")方法让你开始你的字符串和.lastIndexOf("")给你结束你的字符串..我想你应该使用你的最后一个index方法(" .lastIndexOf("")),如.lastIndexOf("");.