【发布时间】:2020-08-13 09:15:32
【问题描述】:
例如,名称 Donald trump(12 个字符)导致错误字符串索引超出范围 7(找到空格的位置),即使名称 Donald trump 更长。
package test;
import javax.swing.JOptionPane;
public class Usernamesubstring {
public static void main(String[] args) {
String fullname = JOptionPane.showInputDialog("What is your full name");
int breakbetween = fullname.lastIndexOf(" ");
String firstnamess = fullname.substring(breakbetween - 3, breakbetween);
int length = fullname.length();
String lastnamess = fullname.substring(length - 3, length);
String firstnamec = firstnamess.substring(0, 0);
String lastnamec = lastnamess.substring(breakbetween + 1, breakbetween + 1 );
firstnamec = firstnamec.toUpperCase();
lastnamec = lastnamec.toUpperCase();
String firstname = firstnamess.substring(1,3);
String lastname = firstnamess.substring(1,3);
firstname = firstnamec + firstname;
lastname = lastnamec + lastname;
System.out.println(firstname + lastname);
}
}
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:7 在 java.lang.String.substring(String.java:1963) 在 test.Usernamesubstring.main(Usernamesubstring.java:14)
【问题讨论】:
-
哪个like会抛出异常?
-
你能解释一下你的意思,但我认为错误来自 .lastIndexOf 第 2 行
-
顺便说一句。请想出一些合理的变量名。我看不出
firstnamess、firstnamec和firstname之间没有区别——这让人无法理解代码应该做什么。 -
当您收到错误时,它会告诉您它发生在哪一行代码中。只需阅读整个错误。或者至少将其复制/粘贴到问题中。
-
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:test.Usernamesubstring.main(Usernamesubstring) 的 java.lang.String.substring(String.java:1963) 的 7 .java:14)
标签: java string substring lastindexof string-function