我在整个应用程序中加载了一个字符串,它从数字变为字母等。我有一个简单的 if
语句来查看它是否包含字母或数字,但是有些东西不能正常工作。这是一个片段。
String text = "abc";
String number;
if (text.contains("[a-zA-Z]+") == false && text.length() > 2) {
number = text;
}
尽管 text
变量确实包含字母,但条件返回为 true
。和 &&
应该评估,因为两个条件都必须是 true
以便处理 number = text;
===============================
解决方案:
我能够通过使用对此问题的评论提供的以下代码来解决此问题。所有其他帖子也有效!
我使用的有效来自第一条评论。尽管提供的所有示例代码似乎也是有效的!
String text = "abc";
String number;
if (Pattern.matches("[a-zA-Z]+", text) == false && text.length() > 2) {
number = text;
}
原文由 RedHatcc 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您要将数字作为文本处理,请更改:
至:
与其检查字符串 是否不 包含字母字符,不如检查以确保它 仅 包含数字。
如果您真的想使用数值,请使用
Integer.parseInt()
或Double.parseDouble()
正如其他人在下面解释的那样。附带说明一下,将布尔值与
true
或false
进行比较通常被认为是不好的做法。只需使用if (condition)
或if (!condition)
。