2015-04-12 60 views
1

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

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的结果我怎么会去吗?

+0

使用一个循环,另'indexOf'方法,这需要一个起始索引。 –

回答

0

扫描仪输入=新的扫描仪(System.in);

String primeNumber = input.nextLine();

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

而(指数> = 0){

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

}

0

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

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"); 
0

你可以尝试这样的事:

int length = primeNumber.length(); 

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

} 
+0

为什么这会降低投票率? –

0

利用Java 8可以做到这一点:

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