indexOf 和子串跳过 1 个结果
indexOf and substring skipping 1 result
我正在尝试分离/分解一个字符串以便稍后对其进行处理。
输入的字符串是这样的:
1_2_3_2_2
我使用上述值作为参数调用的函数:
void parseXString(String value){
int amountX = (value.length() / 2) + 1;
int seperatorIndex = value.indexOf('_');
int secondSeperator = 0;
for(int i = 0; i < amountX; i++){
String xPoint = "";
if(i == 0){
xPoint = value.substring(0, seperatorIndex);
}else{
xPoint = value.substring(seperatorIndex + 1, secondSeperator);
}
sendMessage((String)i + " X = " + xPoint + " || SEP: " + (String)seperatorIndex + " / " + (String)secondSeperator );
seperatorIndex = value.indexOf("_", seperatorIndex + 1);
secondSeperator = value.indexOf("_", seperatorIndex + 1);
}
sendMessage("Last X = " + value.substring(seperatorIndex + 1));
}
sendMessage
函数会将值反馈给正在运行的 Java 应用程序。我得到的输出是这样的:
0 X = 1 || SEP: 1 / 0
1 X = 3 || SEP: 3 / 5
2 X = 2 || SEP: 5 / 7
3 X = 2 || SEP: 7 / -1
4 X = 1 || SEP: -1 / 1
Last X = 2_3_2_2
如您所见,在第二次迭代中应该有值 2
的 return 而不是 3
.
我认为 seperatorIndexes
有问题,但我现在脑子一片空白(一直在努力)。
所以我的问题很简单。为什么我没有得到正确的值/我该如何解决?
您的错误是您在第一次迭代中增加了 seperatorIndex
。因此,seperatorIndex
在您的第二次迭代中为 3。
您应该将增加 seperatorIndex
的部分放入 if(i == 0)
条件的其他部分。这样做时,您还必须在条件的 if 部分增加 secondSeperator
。
我正在尝试分离/分解一个字符串以便稍后对其进行处理。
输入的字符串是这样的:
1_2_3_2_2
我使用上述值作为参数调用的函数:
void parseXString(String value){
int amountX = (value.length() / 2) + 1;
int seperatorIndex = value.indexOf('_');
int secondSeperator = 0;
for(int i = 0; i < amountX; i++){
String xPoint = "";
if(i == 0){
xPoint = value.substring(0, seperatorIndex);
}else{
xPoint = value.substring(seperatorIndex + 1, secondSeperator);
}
sendMessage((String)i + " X = " + xPoint + " || SEP: " + (String)seperatorIndex + " / " + (String)secondSeperator );
seperatorIndex = value.indexOf("_", seperatorIndex + 1);
secondSeperator = value.indexOf("_", seperatorIndex + 1);
}
sendMessage("Last X = " + value.substring(seperatorIndex + 1));
}
sendMessage
函数会将值反馈给正在运行的 Java 应用程序。我得到的输出是这样的:
0 X = 1 || SEP: 1 / 0
1 X = 3 || SEP: 3 / 5
2 X = 2 || SEP: 5 / 7
3 X = 2 || SEP: 7 / -1
4 X = 1 || SEP: -1 / 1
Last X = 2_3_2_2
如您所见,在第二次迭代中应该有值 2
的 return 而不是 3
.
我认为 seperatorIndexes
有问题,但我现在脑子一片空白(一直在努力)。
所以我的问题很简单。为什么我没有得到正确的值/我该如何解决?
您的错误是您在第一次迭代中增加了 seperatorIndex
。因此,seperatorIndex
在您的第二次迭代中为 3。
您应该将增加 seperatorIndex
的部分放入 if(i == 0)
条件的其他部分。这样做时,您还必须在条件的 if 部分增加 secondSeperator
。