【问题标题】:How can check if a java string contains numbers and letters?如何检查java字符串是否包含数字和字母?
【发布时间】:2021-10-01 09:42:15
【问题描述】:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editText = findViewById(R.id.editTextName);
    textView = findViewById(R.id.textViewOne);
    button = findViewById(R.id.buttonOne);
    view = findViewById(R.id.snackbar_action);
    String x = editText.getText().toString();
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {//Checking if edit text field is left empty.
            if (editText.getText().toString().equals("")) {
                Snackbar.make(view, R.string.text_label, Snackbar.LENGTH_SHORT).show();
            }//Checking if editText field is numeric.
            else if (TextUtils.isDigitsOnly(x)){
                Snackbar.make(view, R.string.text_number, Snackbar.LENGTH_SHORT).show();
            } else {
                textView.setText(NATOConverter("" + editText.getText().toString()));
            }
        }
    });
}

大家好,我正在努力弄清楚如何检查我的 edittext 值是否包含字母和数字,如果用户输入例如“JDF23D”告诉他们删除数字,但我的错误无关紧要如果你有什么建议的话,它会保留什么?

【问题讨论】:

  • 出于对读者的尊重,打字时请使用正确的语法和大小写。这个网站更像是维基百科,而不是一个休闲聊天室。
  • 这个问题很混乱。需要重写以清楚地说明您的目标、您不想要的结果以及您认为问题出在哪里。
  • 这对我来说有点清楚。仔细阅读一下

标签: java android


【解决方案1】:

你用这个方法:

TextUtils.isDigitsOnly(x)

但此方法会检查您的字符串 only 是否包含数字。所以你的例子“JDF23D”将return false

你可以看看这个post

【讨论】:

    【解决方案2】:

    尝试更简单的

    boolean match = Pattern.compile("\\d+").matcher(s).find();
    

    【讨论】:

      【解决方案3】:

      尝试下一个代码

      if (editText.getText().toString().matches(".*[0-9].*")){
                  //some code
              }
              else{
                 //some code 
              }
      

      【讨论】:

        【解决方案4】:

        如果你想检查字符串是否包含数字,你应该使用这个,

        public boolean containsDigit(String x){
        for(int i = 0; i < x.length(); i++){
                if(48 <= (int) (x.charAt(i)) <= 57)
                    return true;
        }
        return false;
        }
        

        如果一个字符是数字则返回真,否则返回假。

        【讨论】:

        • 总是在这里传入edittext的当前值。使用edittext.getText().toString() 作为参数。不要使用存储的值。
        猜你喜欢
        • 1970-01-01
        • 2020-12-12
        • 2015-01-04
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 2012-06-12
        相关资源
        最近更新 更多