我在整个应用程序中加载了一个字符串,它可以从数字变为字母等等.我有一个简单的if语句,看看它是否包含字母或数字,但有些东西不太正常.这里是一个片段.

String text = "abc"; 
String number; 

if (text.contains("[a-zA-Z]+") == false && text.length() > 2) {
    number = text; 
}

虽然text变量确实包含字母,但条件返回为true.为了处理number = text;,AND &&应作为必须为true的两个条件求值

=

Solution:

我能够通过使用这个问题的注释提供的以下代码来解决这个问题.所有其他帖子也是有效的!

我使用的是第一条 comments .尽管提供的所有示例代码似乎都是有效的!

String text = "abc"; 
String number; 

if (Pattern.matches("[a-zA-Z]+", text) == false && text.length() > 2) {
    number = text; 
}

推荐答案

如果要将数字作为文本处理,请更改:

if (text.contains("[a-zA-Z]+") == false && text.length() > 2){

致:

if (text.matches("[0-9]+") && text.length() > 2) {

不要判断字符串doesn't是否包含字母字符,而是判断它是否包含only个数字.

如果您实际上想要使用该数值,请使用Integer.parseInt()Double.parseDouble(),如下所述.


作为旁注,将布尔值与truefalse进行比较通常被认为是不好的做法.只用if (condition)if (!condition).

Java相关问答推荐

收听RDX中用户数据的变化

使用log 4j2格式的Hibernate 显示SQL日志(log)

更新我们的一个文物后出现了严重的符号引用错误

如何在SystemiccationRetryListenerSupport中获得类级别的spring retryable annotation中指定的标签?

为什么S的文档中说常量方法句柄不能在类的常量池中表示?

我正在try 跟踪数组中最大的两个数字

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

有没有更快的方法在N个容器中删除重复项?

如何让JVM在SIGSEGV崩溃后快速退出?

Java中将文本拆分为数字或十进制数字和字符串

声明MessageChannel Bean的首选方式

如何从日期中截取时间并将其传递给组件?

我怎样才能让IntelliJ标记toString()的任何实现?

为什么在下面的Java泛型方法中没有类型限制?

嘲笑黄瓜中的对象

在应用getCellFormula()时,Excel引用中的文件名始终为";[1]";使用Apache POI()

在整数列表中查找和可被第三个整数整除的对时出现无法解释的RunTimeError

基于Java中mm/dd/yy格式的最近日期对数组列表进行排序

Spring Mapstruct如何获取Lazy初始化实体字段的信息?

java.util.LinkedList()是如何成为MutableList的实例的?