【问题标题】:How do I recognize the initial white space/spaces in my edit text?如何识别编辑文本中的初始空白/空格?
【发布时间】:2015-11-10 19:21:02
【问题描述】:

我试图识别我的编辑文本中的初始空格,这样如果用户输入" "(任意数量的空格),它不会启用我的完成按钮。 所以,到目前为止,我已经有了这段代码:

String sendString = mSendText.getText().toString();
if(sendString.equals(" ")||sendString.isEmpty()||sendString ==null ){
//do nothing
                }else {
//do my stuff
}

问题是我希望 else 仅在我有包含任何字符的字符串时才起作用,只要它不是开头的所有空格即可。 我的代码仅适用于 1 个空格。我想让它使得无论开头存在多少个空格,只要没有字符出现,它就会删除它们或不启用我的完成按钮。

例如:

This should go to the if loop: "      "
This should go to the else loop: "    Hello, it's me"    

有什么想法吗? 谢谢!

【问题讨论】:

  • 匹配/^\s*$/ 未启用。匹配 /\S/ 已启用。所以,你可以选择。

标签: android regex android-layout android-fragments android-button


【解决方案1】:

只需将equalsTo() 替换为startsWith()

String sendString = mSendText.getText().toString();
if( (sendString == null) || (sendString.startsWith(" ")) || (sendString.isEmpty())){
    //do nothing
}else{
    //do my stuff
}

也许,如果您只对相关文本感兴趣,您可以使用 trim() 排除开头/结尾的空格

String sendString = mSendText.getText().toString().trim();
if(sendString.isEmpty()) {
    //do nothing
}else{
    //do my stuff
}

【讨论】:

  • 行得通!谢谢,但只有当我添加 .trim() 和一起开始时。
【解决方案2】:

使用trim() 删除String 开头和结尾的奇数空格。

 String str = new String("   Welcome to Tutorialspoint.com   ");

 System.out.print("Return Value :" );
 System.out.println(Str.trim() );

返回Welcome to Tutorialspoint.com

【讨论】:

    【解决方案3】:

    我会删除所有空格,然后检查字符串中是否有任何内容。

    String sendString = mSendText.getText().toString().replace(" ","");
    if(sendString.isEmpty()){
         // do nothing
    }else{
         // do something
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2016-07-25
      • 2015-01-14
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多