org.apache.commons.lang3.math.NumberUtils 是 Apache Commons Lang 库中的一个工具类,它提供了许多静态方法来处理数字。NumberUtils.isCreatable 方法用于检查给定的字符串是否可以解析为一个有效的数字(包括整数、浮点数等)。

以下是 NumberUtils.isCreatable 方法的基本用法和示例:

方法签名

java复制代码
 public static boolean isCreatable(CharSequence cs)

参数

  • cs:要检查的字符序列(字符串)。

返回值

  • 如果字符序列可以解析为一个有效的数字,则返回 true;否则返回 false

示例代码

 import org.apache.commons.lang3.math.NumberUtils;
 
  
 
 public class NumberUtilsExample {
 
     public static void main(String[] args) {
 
         String validNumberStr = "123";
 
         String invalidNumberStr = "abc";
 
         String validFloatStr = "123.45";
 
         String invalidFloatStr = "123..45";
 
         String validNegativeIntStr = "-123";
 
         String validHexStr = "0x1A";  // Note: Hexadecimal is not directly supported by isCreatable
 
  
 
         // 测试有效的数字字符串
 
         System.out.println(NumberUtils.isCreatable(validNumberStr));  // 输出: true
 
  
 
         // 测试无效的数字字符串
 
         System.out.println(NumberUtils.isCreatable(invalidNumberStr));  // 输出: false
 
  
 
         // 测试有效的浮点数字符串
 
         System.out.println(NumberUtils.isCreatable(validFloatStr));  // 输出: true
 
  
 
         // 测试无效的浮点数字符串
 
         System.out.println(NumberUtils.isCreatable(invalidFloatStr));  // 输出: false
 
  
 
         // 测试有效的负整数字符串
 
         System.out.println(NumberUtils.isCreatable(validNegativeIntStr));  // 输出: true
 
  
 
         // 注意: isCreatable 不直接支持十六进制字符串
 
         System.out.println(NumberUtils.isCreatable(validHexStr));  // 输出: false
 
     }
 
 }

注意事项

  1. 十六进制NumberUtils.isCreatable 方法不支持直接解析十六进制字符串(如 0x1A)。如果需要解析十六进制字符串,可以先移除前缀 0x,然后使用 Integer.parseInt(String s, int radix) 或其他方法。
  2. 空字符串:空字符串会被认为是不可解析的,返回 false
  3. 空格:如果字符串中包含前导或尾随空格,则这些空格会被忽略(前提是整个字符串仅包含这些空格和有效的数字字符)。例如," 123 " 会返回 true

依赖

要使用 NumberUtils 类,你需要在项目的依赖管理工具(如 Maven 或 Gradle)中添加 Apache Commons Lang 库的依赖。

Maven 依赖

 <dependency>
 
     <groupId>org.apache.commons</groupId>
 
     <artifactId>commons-lang3</artifactId>
 
     <version>3.12.0</version> <!-- 请使用最新版本 -->
 
 </dependency>

Gradle 依赖

 implementation 'org.apache.commons:commons-lang3:3.12.0' // 请使用最新版本

通过了解 NumberUtils.isCreatable 方法的用法,你可以更轻松地在代码中进行数字字符串的验证。