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

