Android 如何检查“编辑文本”视图是否包含2个空格?

Android 如何检查“编辑文本”视图是否包含2个空格?,android,android-fragments,android-edittext,android-view,textview,Android,Android Fragments,Android Edittext,Android View,Textview,当前,我的编辑文本视图检查搜索的词是否包含一个空格,如下所示: if(mSearchView.getText().toString().contains(" ") 如何确保它检查searchview是否在3个搜索词之间包含2个空格,例如:“here it is”请参见 您可以使用正则表达式来实现这一点。使用如下代码: if(Pattern.matches("^\\w+\\s\\w+\\s\\w+$", mSearchView.getText().toString())) public sta

当前,我的编辑文本视图检查搜索的词是否包含一个空格,如下所示:

if(mSearchView.getText().toString().contains(" ")
如何确保它检查searchview是否在3个搜索词之间包含2个空格,例如:“here it is”

请参见


您可以使用正则表达式来实现这一点。使用如下代码:

if(Pattern.matches("^\\w+\\s\\w+\\s\\w+$", mSearchView.getText().toString()))
public static boolean containsTwoSpaces(Editable text) {
    if (text == null) return false;

    return Pattern.matches("^\\w+\\s\\w+\\s\\w+$", text.toString());
}
还要确保检查
mSearchView.getText()
是否为空-您可能会得到一个
NullReferenceException
,内容为空
EditText

最后,您可能希望创建一个类似以下的方法:

if(Pattern.matches("^\\w+\\s\\w+\\s\\w+$", mSearchView.getText().toString()))
public static boolean containsTwoSpaces(Editable text) {
    if (text == null) return false;

    return Pattern.matches("^\\w+\\s\\w+\\s\\w+$", text.toString());
}

为了方便起见,请清除并确保您不会遇到
NullPointerException

它显示了“^\w\s\w\s$”无效转义序列上的错误(有效的转义序列是\b\t\n\f\r\”\)我的坏-犯了一个错误。更新了答案忘记了转义反斜杠…Duh…再次更新了答案并在NetBeans中进行了测试。感谢您提供详细的答案,但目前我的操作如下:if((searchTerm.contains(mSearchView.getText().toString().toLowerCase(Locale.ENGLISH)+“”+mSearchView.getText().toString().toLowerCase(Locale.ENGLISH))。您建议我如何将上述代码合并到我的代码中?我不想限制我的字数,只想识别字数之间的2个或更多空格将文本更改侦听器添加到mSearchView,然后onTextChange您可以检查空格。在这种情况下,这是不必要的工作,可能会导致应用程序性能下降。除非确实需要实时完成,我不建议这样做。