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
}
}
注意事项
- 十六进制:
NumberUtils.isCreatable
方法不支持直接解析十六进制字符串(如0x1A
)。如果需要解析十六进制字符串,可以先移除前缀0x
,然后使用Integer.parseInt(String s, int radix)
或其他方法。 - 空字符串:空字符串会被认为是不可解析的,返回
false
。 - 空格:如果字符串中包含前导或尾随空格,则这些空格会被忽略(前提是整个字符串仅包含这些空格和有效的数字字符)。例如,
" 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
方法的用法,你可以更轻松地在代码中进行数字字符串的验证。