2013-03-20 135 views
0

有没有办法检查字符串中有多少重复字符并指出它的索引位置?我正在使用indexOf()方法。但它只会返回第一个结果。剩下的另一封信将不会被退回。我也想知道它是否有可能知道其所有重复字母的索引位置。如何指出字符串中所有重复字符的索引位置

这里是我目前使用的代码片段。

String word = "RASPBERRY"; 
char letter = 'R'; 
int indx = 0; 

indx = word.indexOf(letter); 
+1

'indexOf'可以采取第二参数,以开始从搜索索引。所以要在'indx'后面找到一个字符的* next *索引,你可以使用'word.indexOf(letter,indx)'。 – Vulcan 2013-03-20 01:51:30

+0

@Vulcan,我很欣赏你指导答案的方式。 upvote for you。 – techuser 2013-03-20 01:55:34

+0

感谢您的答案先生沃尔坎不幸的是我有关于代码的问题。有可能给我一些例子。就像我发布的代码一样。如果您不介意谢谢 – 2013-03-20 01:58:17

回答

2

是的,唯一的indexOf返回来自特定位置的起点的第一个匹配的位置,对于你的情况,也许,一个循环可以找到所有位置,这个字符出现在此字符串。

String word = "RASPBERRY"; 
char letter = 'R'; 
int start = word.indexOf(letter); 

while(start != -1) { 
    System.out.println("Found R in: " + start); 
    start = word.indexOf(letter, ++start); 
} 
+0

您应该在将代码放入答案之前测试代码。此代码无限循环。 – Vulcan 2013-03-20 02:07:33

+0

刚刚更新,谢谢 – 2013-03-20 02:10:51

1
String word = "RASPBERRY"; 
char letter = 'R'; 
int indx = word.indexOf(letter); 

while (indx != -1) { 
    System.out.println("Index at " + indx); 
    indx = word.indexOf(letter, indx + 1); 
} 
相关问题