2015-04-12 113 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); 
相關問題