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