【问题标题】:index of string in multiple positions多个位置的字符串索引
【发布时间】:2015-05-12 14:57:15
【问题描述】:

我希望能够获取某个字符串的多个索引值,例如;

System.out.print("Enter an Integer:");

Scanner input = new Scanner(System.in);
String primeNumber = input.nextLine();

System.out.printf("\n%s",primeNumber.indexOf('2'));

当输入 2589729872 时,我得到的结果是 0。

我想获得 0,5 和 9。我该怎么做?

【问题讨论】:

  • 使用循环,以及另一个采用起始索引的indexOf 方法。

标签: java string indexing


【解决方案1】:

扫描仪输入 = new Scanner(System.in);

String primeNumber = input.nextLine();

int index = primeNumber.indexOf('2');

而(索引 >=0){

System.out.println(index);
index = primeNumber.indexOf('2',index+1);

}

【讨论】:

    【解决方案2】:

    如果你只是想打印它们,这应该足够了,否则你也可以将它们存储在一个数组中,稍后再打印。

    System.out.print("Enter an Integer:");
    
    Scanner input = new Scanner(System.in);
    String primeNumber = input.nextLine();
    int index = -1;
    
    while ((index = primeNumber.indexOf('2', index + 1)) != -1) {
        System.out.printf("%d,", index);
    }
    System.out.printf("\n");
    

    【讨论】:

      【解决方案3】:

      使用 Java 8,您可以这样做:

      IntStream.range(0, primeNumber.length())
          .filter(j -> primeNumber.charAt(j) == '2')
          .forEach(System.out::println);
      

      【讨论】:

        【解决方案4】:

        你可以试试这样的:

        int length = primeNumber.length();
        
        for(int i = 0 ; i < length; i++){
            if(primeNumber.charAt(i)== '2'){
            System.out.println(i);
            }
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-31
          • 2012-06-24
          • 2021-07-20
          • 1970-01-01
          • 2016-06-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多