int locsPlusLast = locsPlus.get(locsPlus.size()-1);
System.out.println(locsPlusLast);
int index = checkScanning.indexOf('(',locsPlusLast);
while(index>=0){
index = checkScanning.indexOf('(',locsPlusLast+1);
System.out.println(index);
}
checkScanning 是扫描仪输入。
我只想输出(,但它输出的信息)两个位置,为什么会这样?
答案 0 :(得分:1)
对不起,我误解了你的问题 试试这个:
private static void positionOf(char target, String query) {
int position = 0;
int result = 0;
while(-1 != (result = query.indexOf(target, position))){
System.out.println(result);
position = result +1;
}
}
答案 1 :(得分:0)
你可以在循环中使用indexOf并递增计数器以找出数量 在字符串中出现单个指定字符。你不需要在这里使用while循环。 indexOf(int ch, int fromIndex)返回索引。
int pos = str.indexOf('(');
while(pos >= 0) {
System.out.println(pos);
pos = str.indexOf('(', pos +1);
}
答案 2 :(得分:0)
你是否想找到char的位置'''? API indexOf()的第二个参数是起始索引,搜索在此索引之后执行。
如果您提供checkScanning的值和查询的输出,将会很有帮助。
indexOf(String str, int fromIndex)
// Returns the index within this string of the first occurrence of the specified
// substring, starting at the specified index.
String str = "Test(Bracket)(position)";
System.out.println("Position: "+ str.indexOf('(',1));
System.out.println("Position: "+ str.indexOf('(',5));
Position: 4
Position: 13