我正在使用indexOf()来查找空格,同时尝试分隔字符串中的单词,但索引关闭始终返回-1;这是我的代码:-
import java.util.Scanner;
class Main {
public static void main(String[] args){
Scanner y = new Scanner(System.in);
System.out.println("Enter the String");
String s = y.nextLine();
int words = 1;
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)==' ') words++;
}
String[] a = new String[words];
int l = s.length();
for (int i = 0; i <= words; i++) {
int r = s.indexOf(" ");
a[i] = s.substring(0, r);
s = s.substring((r + 1), l);
}
for(int i = 0; i <= words; i++) {
System.out.println(a[i]);
}
}
}
最佳答案
问题是您从 1 开始 words
并为找到的每个空格递增它。因此,如果有一个空格,则 words
为 2。然后您尝试查找那么多空格 - 但只有 1 个空格,因此当它找不到可查找的空格时,它会返回 -1 并且您获取异常。
关于java - 查找空格时indexOf()返回-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41982441/