我如何使用 IndexOf 找到完全匹配项?
How can i use IndexOf to find an exact match?
我正在尝试使用 IndexOf 查找字符串段的位置。但字符串可能如下所示:
blahblahEAPPWForms
EAPPWTextblah blah
EAPPWblah
上面的例子可以是任意顺序,但有时我可能只是在寻找"EAPPW"本身,它可能根本不存在。但是如果 "EAPPWText" 或 "EAPPWForms" 先出现,我得到它的索引。
如果您只查找没有其他文本的实例,则非常简单:
//Check if it's the whole string
if(str == "EAPPWText")
return 0;
//Check if it's in the start or end
int nIndex = str.IndexOf("EAPPWText" + " ");
if(nIndex >= 0)
return nIndex;
//Check if it's the LAST word
nIndex = str.IndexOf(" " + "EAPPWText" );
return nIndex;
你的问题有点令人困惑,因为它并没有真正解释你是否只想一直获取 "EAPPW"
字符串,或者如果它存在和不存在你是否想要获取它'你得到任何以 "EAPPW"
开头的片段
所以,这是同时获得两者的方法。
假设您要查找单词 "blah"
并且只查找单词 "blah"
你应该能够使用正则表达式来找到它。
此正则表达式搜索 "blah"
在字符串的开头、中间、结尾以及是否是整个字符串。
搜索方法将return第一次出现的索引。
x = "this is blah";
reg = /^blah$|^blah\s+|\s+blah\s+|\s+blah$/;
var location = x.search(reg);
if you want to get "blahaaa" if "blah" doesn't exist, then you can check if the result is -1 then do indexOf.
if(location === -1)
{
location = x.indexOf("blah");
}
我正在尝试使用 IndexOf 查找字符串段的位置。但字符串可能如下所示:
blahblahEAPPWForms
EAPPWTextblah blah
EAPPWblah
上面的例子可以是任意顺序,但有时我可能只是在寻找"EAPPW"本身,它可能根本不存在。但是如果 "EAPPWText" 或 "EAPPWForms" 先出现,我得到它的索引。
如果您只查找没有其他文本的实例,则非常简单:
//Check if it's the whole string
if(str == "EAPPWText")
return 0;
//Check if it's in the start or end
int nIndex = str.IndexOf("EAPPWText" + " ");
if(nIndex >= 0)
return nIndex;
//Check if it's the LAST word
nIndex = str.IndexOf(" " + "EAPPWText" );
return nIndex;
你的问题有点令人困惑,因为它并没有真正解释你是否只想一直获取 "EAPPW"
字符串,或者如果它存在和不存在你是否想要获取它'你得到任何以 "EAPPW"
所以,这是同时获得两者的方法。
假设您要查找单词 "blah"
并且只查找单词 "blah"
你应该能够使用正则表达式来找到它。
此正则表达式搜索 "blah"
在字符串的开头、中间、结尾以及是否是整个字符串。
搜索方法将return第一次出现的索引。
x = "this is blah";
reg = /^blah$|^blah\s+|\s+blah\s+|\s+blah$/;
var location = x.search(reg);
if you want to get "blahaaa" if "blah" doesn't exist, then you can check if the result is -1 then do indexOf.
if(location === -1)
{
location = x.indexOf("blah");
}