这是我的代码:
if (results.contains("search"))
{
int firstSpaceEntry = 0, lastIndex = 0, index = 0;
String tempString = "";
for (String sExtract : myResults)
{
lastIndex = sExtract.length();
firstSpaceEntry = sExtract.indexOf(" ");
if (firstSpaceEntry < lastIndex)
{
tempString = sExtract.substring(firstSpaceEntry, lastIndex);
myExtract.set(index, tempString);
System.err.println(" index = "+index+" value = "+tempString);
index++;
}
}
}
问题在于,当我说'搜索'时,它有效。但是当我说搜索+其他单词时它不起作用。 = /
答案 0 :(得分:1)
首先 - 你可以完全省略“lastIndex”。如果没有找到,indexOf将返回-1,如果省略第二个参数,则substring将继续在行尾。
第二 - 虽然模糊细节(你是说结果变量在“搜索”时有效但在“搜索东西”时失败了吗?),你也可以尝试使用indexOf而不是contains。
第三 - “结果”是一个列表还是一个字符串?我在下面的代码中假设后者,但如果它是前者,则可以解释为什么“包含”仅在您使用“搜索”而没有其他单词时才有效。如果是这种情况,你需要循环遍历结果数组,并单独测试每个值是否包含/ startsWith / etc“search”。
if (results.indexOf("search") > -1)
{
int firstSpaceEntry = 0, lastIndex = 0, index = 0;
String tempString = "";
for (String sExtract : myResults)
{
firstSpaceEntry = sExtract.indexOf(" ");
if (firstSpaceEntry > -1)
{
tempString = sExtract.substring(firstSpaceEntry);
myExtract.set(index, tempString);
System.err.println(" index = "+index+" value = "+tempString);
index++;
}
}
}