Java Isnumeric方法
时间:2020-02-23 14:35:02 来源:igfitidea点击:
在本教程中,我们将看到如何在Java中实现Isnumeric方法。
有许多方法可以检查字符串是否为数字。
使用正则表达式
我们可以使用以下正则表达式来检查字符串是否为数字。
[-+]?\\d*\\.?\\d+
package org.igi.theitroad; public class JavaisNumericMain { public static void main(String args[]) { System.out.println("223 is numeric :"+isNumeric("223")); System.out.println("27.8 is numeric : "+isNumeric("27.8")); System.out.println("4.2d is numeric : "+isNumeric("4.2d")); System.out.println("abc is numeric : "+isNumeric("abc")); System.out.println("-123 is numeric : "+isNumeric("-123")); } public static boolean isNumeric(String str) { return str != null && str.matches("[-+]?\d*\.?\d+"); } }
输出:
223 is numeric : true 27.8 is numeric : true 4.2d is numeric : false abc is numeric : false -123 is numeric : true
使用Apache Commons库
我们需要添加以下依赖性以获取Apache Commons JAR。
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </dependency>
numberutils.iscreatable(String)
我们可以updumentutils.iscreatable(string)检查字符串是否为数字。
此方法接受:
- 科学符号(例如2.9e-10)
- 具有前缀0x或者0x的十六进制数
- 以前缀0开始的八进制数
- 标有类型限定符的数字(例如20L或者11.2D)
package org.igi.theitroad; import org.apache.commons.lang3.math.NumberUtils; public class JavaisNumericMain { public static void main(String args[]) { System.out.println("223 is numeric : "+NumberUtils.isCreatable("223")); System.out.println("27.8 is numeric : "+NumberUtils.isCreatable("27.8")); System.out.println("4.2d is numeric : "+NumberUtils.isCreatable("4.2d")); System.out.println("abc is numeric : "+NumberUtils.isCreatable("abc")); System.out.println("-123 is numeric : "+NumberUtils.isCreatable("-123")); } }
输出:
223 is numeric : true 27.8 is numeric : true 4.2d is numeric : true abc is numeric : false -123 is numeric : true
Stringutils.Isnumeric(CharSequence)
Stringutils.Isnumeric(CharSequence)检查CharSequence是否仅包含Unicode数字。
此方法可以接受任何语言中的Unicode数字。
它不能接受正面或者负面标志或者小数点。
package org.igi.theitroad; import org.apache.commons.lang3.StringUtils; public class JavaisNumericMain { public static void main(String args[]) { System.out.println("223 is numeric : "+StringUtils.isNumeric("223")); System.out.println("27.8 is numeric : "+StringUtils.isNumeric("27.8")); System.out.println("4.2d is numeric : "+StringUtils.isNumeric("4.2d")); System.out.println("abc is numeric : "+StringUtils.isNumeric("abc")); System.out.println("-123 is numeric : "+StringUtils.isNumeric("-123")); } }
输出:
223 is numeric : true 27.8 is numeric : false 4.2d is numeric : false abc is numeric : false -123 is numeric : false
numberutils.isdigits(字符串)
numberutils.isDigits(String)检查字符串是否仅包含数字。
package org.igi.theitroad; import org.apache.commons.lang3.math.NumberUtils; public class JavaisNumericMain { public static void main(String args[]) { System.out.println("223 is numeric : "+NumberUtils.isDigits("223")); System.out.println("27.8 is numeric : "+NumberUtils.isDigits("27.8")); System.out.println("4.2d is numeric : "+NumberUtils.isDigits("4.2d")); System.out.println("abc is numeric : "+NumberUtils.isDigits("abc")); System.out.println("-123 is numeric : "+NumberUtils.isDigits("-123")); } }
输出:
223 is numeric : true 27.8 is numeric : false 4.2d is numeric : false abc is numeric : false -123 is numeric : false
使用简单的Java代码
我们只需使用Parsexxx()即可检查字符串是否为数字。
例如:我们可以使用Double.parsedouble()方法检查字符串是否为双重或者不。
package org.igi.theitroad; public class JavaisNumericMain { public static void main(String args[]) { System.out.println("223 is numeric :"+isNumeric("223")); System.out.println("27.8 is numeric : "+isNumeric("27.8")); System.out.println("4.2d is numeric : "+isNumeric("4.2d")); System.out.println("abc is numeric : "+isNumeric("abc")); System.out.println("-123 is numeric : "+isNumeric("-123")); } public static boolean isNumeric(String str) { if (str == null || str.length() == 0) { return false; } try { Double.parseDouble(str); return true; } catch (NumberFormatException e) { return false; } } }
输出:
223 is numeric :true 27.8 is numeric : true 4.2d is numeric : true abc is numeric : false -123 is numeric : true