Java程序检查字符串是否为数值
要理解这个例子,你需要了解以下 Java 编程 主题的知识:
示例 1:检查字符串是否为数字
public class Numeric {
public static void main(String[] args) {
String string = "12345.15";
boolean numeric = true;
try {
Double num = Double.parseDouble(string);
} catch (NumberFormatException e) {
numeric = false;
}
if(numeric)
System.out.println(string + " 是一个数字");
else
System.out.println(string + " 不是一个数字");
}
}
输出
12345.15 是一个数字
在上述程序中,我们有一个名为 string
的 String
,它包含要检查的字符串。我们还有一个布尔值 numeric
,用于存储最终结果是否为数字。
为了检查 string
是否只包含数字,在 try 代码块中,我们使用 Double
的 parseDouble()
方法将字符串转换为 Double
。
如果它抛出错误(即 NumberFormatException
错误),则意味 着 string
不是一个数字,numeric
被设置为 false
。否则,它就是一个数字。
然而,如果你想检查多个字符串,你需要将其改为一个函数。并且,这种基于抛出异常的逻辑可能会非常昂贵。
相反,我们可以使用正则表达式的强大功能来检查字符串是否为数字,如下所示。
示例 2:使用正则表达式(regex)检查字符串是否为数字
public class Numeric {
public static void main(String[] args) {
String string = "-1234.15";
boolean numeric = true;
numeric = string.matches("-?\\d+(\\.\\d+)?");
if(numeric)
System.out.println(string + " 是一个数字");
else
System.out.println(string + " 不是一个数字");
}
}