`
renpeijia17
  • 浏览: 39776 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Java判断一个字符串为数字(正负、小数)

    博客分类:
  • J2SE
阅读更多

       这些天因为工作上的需求,其中一个小环节是传来一个String类型的参数,需要判断该参数是否为数字(正负、正数小数都要能判断)。

       当走到这个环节时,首先想到的是isDigit()方法,具体不清楚是哪个类下的了,不过查API后发现该方法不可行,它只能判断正整数。不过为了以后可能会用到该方法,所以特意写了个小程序当备用。

      代码如下:

    

//采用Character.isDigit()方法来判断一个字符串是否为数字
		//局限性很大,只能判断全是数字的字符串
		char[] strArr = str.toCharArray();
		int count = 0;
		for(int i = 0; i < strArr.length; i++) {
			if(Character.isDigit(strArr[i]) == false) {
				count++;
			}
		}
		if(count > 0) {
			System.out.println("Is not Number!");
		} else {
			System.out.println("Is Number!" + str);
		}

        后来通过百度,又找到了另外两种方法,一种是通过强制类型转换的方式,一种就是正则表达式了。

        对于强制类型转换的方式,代码可以这样写:

       

//采用强制类转换来判断一个字符串是否为数字
//有局限性,如果要判断是int型或double型,就必须要调整转换语句,但可以判断正负
try {
        //Integer num = Integer.valueOf(str);
        Double num2 = Double.valueOf(str);
        //System.out.println("Is Number!" + num);
        System.out.println("Is Number!" + num2);
} catch (Exception e) {
        System.out.println("Is not Number!");
}

       最后能解决我问题的,还是通过正则表达式的方式了。

       代码如下:

//采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全
		//可以判断正负、整数小数
		//?:0或1个, *:0或多个, +:1或多个
		Boolean strResult = str.matches("-?[0-9]+.*[0-9]*");
		
if(strResult == true) {
			System.out.println("Is Number!");
		} else {
			System.out.println("Is not Number!");
		}

       通过这次的问题,我也发现了自身的不足。正则表达式确实很牛,但是我对它的认识,还停留在了解阶段。所以后续工作中,一定要有意识的多去学习它,使用它。

 

 

1
1
分享到:
评论
5 楼 jvx 2019-03-06  
不能验证-06.2这种数
4 楼 renpeijia17 2016-08-02  
嗯 正则那里.*是错误的,应该写成.?才对。。然而这段代码已经上生产N久了,现在都还没出现过问题,呼呼估计是前端没传过奇葩的数字过来吧 = =、
3 楼 MyTiny 2016-07-22  
小数点只能出现0次货1次
2 楼 wlp7662973 2014-06-08  
字符.也应该转义
1 楼 guoyang100 2014-06-07  
正则貌似这样写是对的:
-?[0-9]+.?[0-9]*

相关推荐

    java判断一个字符串是否是小数的方法

    Java 判断一个字符串是否是小数的方法 Java 语言中判断一个字符串是否是小数的方法是非常重要的,因为在实际开发中,我们经常需要对用户输入的字符串进行验证,以确保其符合我们的业务逻辑。以下是关于 Java 判断一...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    状态机判断实数(Java标准)

    在这个场景中,我们讨论的是使用状态机来判断一个字符串是否能表示Java标准中的实数。实数在编程中通常包括浮点数和双精度浮点数,遵循特定的格式规则。 Java中实数的标准格式基于IEEE 754标准,它允许数字以正负号...

    java 正则表达式

    以上代码展示了如何使用Java的`Pattern`和`Matcher`类来编写简单的正则表达式匹配示例,包括匹配字符串、邮政编码以及电话号码等。通过这些基本示例,可以帮助初学者更好地理解如何在Java中应用正则表达式。

    java(小数点,百分号处理)

    `DecimalFormat`是`NumberFormat`的一个子类,专门用于格式化数字字符串。它可以用来控制数字的小数点后的位数、千分位分隔符以及正负号的显示方式等。 ##### 1.1 基本用法 创建一个`DecimalFormat`对象需要指定一...

    java数字转金额(任意金额、支持负数、前缀0)

    // 转换为字符串并保留两位小数 String strAmount = String.format("%.2f", amount); // 去除小数点和小数部分 String integerPart = strAmount.split("\\.")[0]; String decimalPart = strAmount.split("\\....

    Rmb.rar_人民币 转换 java_人民币大写

    这个"Rmb.rar_人民币 转换 java_人民币大写"的压缩包就是一个典型的例子,它包含了一个Java程序,用于将数字转换成符合中国金融规范的人民币大写形式。这种转换对于财务报表、发票开具等场景至关重要,因为它们要求...

    「小算法」回文数与数值合法性检验.pdf

    这个状态机需要覆盖各种合法的数值情况,如正负号、整数部分、小数点、小数部分、指数等,每个状态对应着对输入字符串的某种解析规则。通过这样的方式,可以高效且准确地判断字符串是否表示一个合法的数值。 总之,...

    Java钱币大小写转换

    `进行数值转换,接着对字符串进行切片处理,分别获取整数和小数部分,再通过循环和条件判断完成转换逻辑。 #### 结论 Java中进行钱币大小写转换,涉及到数值处理、字符串操作以及中文数词和单位的映射。通过合理的...

    Java 常用正则表达式

    6. `^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$`:这个正则表达式用于验证正浮点数,确保小数部分至少有一个非0数字。 7. `^((-\d+(\.\d+)?)|(0+(\.0+)?))$`:该表达式用于...

    正则表达式_数字的提取

    "数字的提取"是正则表达式应用的一个常见场景,例如从文本中准确地识别和提取出所有的数字序列。 正则表达式的语法结构丰富多样,包括基本字符类、量词、分组、断言和反向引用等。对于数字的提取,我们通常会用到...

    高手真经 13条Java核心技术

    - Java应用程序可以通过`args`数组接收命令行参数,每个参数作为一个字符串项存储。 这些核心知识点覆盖了Java语言的关键方面,从基本数据类型操作到高级功能如Unicode支持、文件I/O以及命令行参数处理。深入理解...

    编译原理实验词法分析器 java语言版

    例如,可以定义一个正则表达式来匹配小数和科学记数法,同时包含正负号。之后,可以使用Java的`Pattern`和`Matcher`类来匹配输入字符串,并根据匹配结果生成相应的token。 在实现过程中,还需要考虑边界条件和错误...

    只能输入数字小数点负号正则

    正则表达式(Regular Expression)是一种强大的文本处理工具,它由一系列的字符和符号组成,用于表示一种搜索模式,可以用来检查某个字符串是否符合该模式,或者将符合模式的部分提取出来。在JavaScript、Python、...

    验证数字的正则表达式集

    - **说明**:此表达式用于验证一个字符串是否只包含0到9之间的数字字符,且可以为空。 - **应用场景**:适用于需要用户输入数字但不强制要求输入的场景。 #### 2. 无前导零的整数验证 - **表达式**:`/^0|[1-9][0-...

    数字格式化工具类

    `NumberFormat`是Java的一个抽象类,它为数字(如整数、浮点数)提供通用的格式化服务。它提供了国际化的支持,可以根据不同的地区和语言习惯来格式化数字。这个类的主要功能包括: 1. **格式化数字**:可以将数字...

    Java保留两位小数的几种写法总结

    `Formatter` 类提供了格式化输出的功能,可以方便地将数值转换为字符串: ```java public static String format4(double value) { return new Formatter().format("%.2f", value).toString(); } ``` 在 `%.2f...

    java 数据格式转换符的使用

    - `-`: 左对齐,例如`%-10s`会在10个字符宽度内左对齐输出字符串。 - `+`: 在数字前面加上正负号,即使数值是正数。 - `0`: 填充零,如`%05d`会输出5位宽的数字,不足部分用0填充。 - `,`: 添加千位分隔符,如`%,d`...

    JiSuanQi.rar_实现小数加减_计算器小数_负数 计算器

    在编程领域,设计一个能处理小数和负数的计算器是一项基本任务,它涉及到核心的数学运算和数据类型处理。本教程将详细讲解如何利用编程语言实现这样的功能,以满足"JiSuanQi.rar_实现小数加减_计算器小数_负数 ...

    java常用工具类 数字工具类

    这两个方法利用了`DecimalFormat`类的格式化功能,将数字转换为带有两位小数的字符串,或者转换为带有指定小数位数的字符串。这样不仅能够满足日常开发中对数字展示格式的需求,也可以用于与用户界面交互时对数字的...

Global site tag (gtag.js) - Google Analytics