我准备即将进行的测试,并尝试了解子字符串的工作原理。 请向我解释因为我没有在网上得到解释。 我的错误是:StringIndexOutOfBounds异常 我不明白它是如何导致错误的,因为当调用substring来提取字符串时,它会自动从endIndex返回-1。这就是为什么我加1,但它不起作用。
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("Enter the string: ");
String string = scn.nextLine();
System.out.print("Enter the start char: ");
char startChar = scn.next().charAt(0);
System.out.print("Enter the end char: ");
char endChar = scn.next().charAt(string.length() - 1);
int startIndex = string.indexOf(startChar); //Get index of the start character
int endIndex = string.indexOf(endChar);
if(startIndex == -1) {
System.out.println("No such substring"); //First char doesn't exist
}
else {
if(endIndex == -1) {
System.out.println("No such substring");
}
else {
String extractedString = string.substring(startIndex, endIndex + 1); //Cause sub string is -1
System.out.println("Substring [" + extractedString + "]" + " is found");
}
}
答案 0 :(得分:0)
应该是
char endChar = scn.next().charAt(0);
答案 1 :(得分:0)
所以你正在做的就是调用scn.next()
,并从string.length-1
来电scn.next()
处获取字符。 string
有多长,scn.next()
有多长?