java - 在JAVA中对字符串使用Contains方法

标签 java string

我希望用户输入金额,如果它包含任何字母或符号等,我想拒绝输入。换句话说,我希望它只包含数字。我想出的一个解决方案如下.

final EditText numberField = (EditText) findViewById(R.id.Cost);
 if(numberField != null) {
             test = numberField.getText().toString();
        }
        if(test.isEmpty()) {
                 Toast.makeText(this, "Tutar alanını doldurunuz", Toast.LENGTH_SHORT).show();         

        }else if(test.contains("a")||test.contains("b")
        } else {
                cost = Integer.parseInt(test.trim());
        }

我认为这可行,但是编写从 test.contains("a") 到 test.contains("z") 的所有内容,并且符号太长,使代码看起来非常糟糕。我怎样才能实现我的目标?

最佳答案

如果您不想添加任何额外的库,您可以定义一个额外的方法,如下所示:

public boolean isDecimal(String str) {
    try {
        Double.parseDouble(str);
    }
    catch(NumberFormatException ex) {
        return false;
    }
    return true;
}

当然,这将允许小数(我假设您在谈论金钱时需要小数) - 如果您只想要整数,请改用 Integer.parseInt()

然后你的else if行变成:

else if(isDecimal(test))

关于java - 在JAVA中对字符串使用Contains方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165500/

相关文章:

删除 R 中所有变量的部分变量名

Java正则表达式。获取某些关键字之间的子字符串

Java 静态导入导致编译错误。可能的编译器错误?

javax.net.ssl.SSLException : Unrecognized SSL message, 明文连接?

java - Castor 为 xsd 中的整数类型生成 BigDecimal 类型

Java 数组 - 将带有空格的字符串转换为数组

java - 在另一个字符串中查找某个字符串并计算它出现的次数

java - PDF 的编码问题

Java 8 流处理不流畅

java - 删除字符串中2个字符之间的所有字符