java - 查找空格时indexOf()返回-1

标签 java string indexof

我正在使用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/

相关文章:

Java字符串替换 "with\"

java - 是否有更有效的方法来迭代字符串直到到达某个字符?

javascript - 寻找更多值(value)的索引

java - 连接表与元数据的 Hibernate 映射

java:使用专用文件夹存储库?

r - 在字符串列中,删除第一个逗号(分隔符)之前的文本

java 所选项目数组列表的索引

java - 有没有办法扫描 ArrayList 中的索引? .nextint .nextln 等?

java - Eclipse rcp JFace 数据绑定(bind) - 在属性更改时运行自定义方法

Java Swing,遍历文本区域