这些天因为工作上的需求,其中一个小环节是传来一个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!"); }
通过这次的问题,我也发现了自身的不足。正则表达式确实很牛,但是我对它的认识,还停留在了解阶段。所以后续工作中,一定要有意识的多去学习它,使用它。
相关推荐
Java 判断一个字符串是否是小数的方法 Java 语言中判断一个字符串是否是小数的方法是非常重要的,因为在实际开发中,我们经常需要对用户输入的字符串进行验证,以确保其符合我们的业务逻辑。以下是关于 Java 判断一...
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...
在这个场景中,我们讨论的是使用状态机来判断一个字符串是否能表示Java标准中的实数。实数在编程中通常包括浮点数和双精度浮点数,遵循特定的格式规则。 Java中实数的标准格式基于IEEE 754标准,它允许数字以正负号...
以上代码展示了如何使用Java的`Pattern`和`Matcher`类来编写简单的正则表达式匹配示例,包括匹配字符串、邮政编码以及电话号码等。通过这些基本示例,可以帮助初学者更好地理解如何在Java中应用正则表达式。
`DecimalFormat`是`NumberFormat`的一个子类,专门用于格式化数字字符串。它可以用来控制数字的小数点后的位数、千分位分隔符以及正负号的显示方式等。 ##### 1.1 基本用法 创建一个`DecimalFormat`对象需要指定一...
// 转换为字符串并保留两位小数 String strAmount = String.format("%.2f", amount); // 去除小数点和小数部分 String integerPart = strAmount.split("\\.")[0]; String decimalPart = strAmount.split("\\....
这个"Rmb.rar_人民币 转换 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+)?))$`:该表达式用于...
"数字的提取"是正则表达式应用的一个常见场景,例如从文本中准确地识别和提取出所有的数字序列。 正则表达式的语法结构丰富多样,包括基本字符类、量词、分组、断言和反向引用等。对于数字的提取,我们通常会用到...
- Java应用程序可以通过`args`数组接收命令行参数,每个参数作为一个字符串项存储。 这些核心知识点覆盖了Java语言的关键方面,从基本数据类型操作到高级功能如Unicode支持、文件I/O以及命令行参数处理。深入理解...
例如,可以定义一个正则表达式来匹配小数和科学记数法,同时包含正负号。之后,可以使用Java的`Pattern`和`Matcher`类来匹配输入字符串,并根据匹配结果生成相应的token。 在实现过程中,还需要考虑边界条件和错误...
正则表达式(Regular Expression)是一种强大的文本处理工具,它由一系列的字符和符号组成,用于表示一种搜索模式,可以用来检查某个字符串是否符合该模式,或者将符合模式的部分提取出来。在JavaScript、Python、...
- **说明**:此表达式用于验证一个字符串是否只包含0到9之间的数字字符,且可以为空。 - **应用场景**:适用于需要用户输入数字但不强制要求输入的场景。 #### 2. 无前导零的整数验证 - **表达式**:`/^0|[1-9][0-...
`NumberFormat`是Java的一个抽象类,它为数字(如整数、浮点数)提供通用的格式化服务。它提供了国际化的支持,可以根据不同的地区和语言习惯来格式化数字。这个类的主要功能包括: 1. **格式化数字**:可以将数字...
`Formatter` 类提供了格式化输出的功能,可以方便地将数值转换为字符串: ```java public static String format4(double value) { return new Formatter().format("%.2f", value).toString(); } ``` 在 `%.2f...
- `-`: 左对齐,例如`%-10s`会在10个字符宽度内左对齐输出字符串。 - `+`: 在数字前面加上正负号,即使数值是正数。 - `0`: 填充零,如`%05d`会输出5位宽的数字,不足部分用0填充。 - `,`: 添加千位分隔符,如`%,d`...
在编程领域,设计一个能处理小数和负数的计算器是一项基本任务,它涉及到核心的数学运算和数据类型处理。本教程将详细讲解如何利用编程语言实现这样的功能,以满足"JiSuanQi.rar_实现小数加减_计算器小数_负数 ...
例如,`Integer.toBinaryString(123)`会返回二进制字符串"1111011"。 综上所述,理解和掌握字符的码值以及不同进制之间的转换是编程的基础,这对于学习Java或其他任何编程语言都至关重要。通过不断地练习和应用,你...