文章524
标签277
分类67

算法:表示数值的字符串


表示数值的字符串

表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。

例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。

但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。


分析

使用正则表达式判断即可

更多关于正则表达式见:

给女朋友写小工具的总结之-正则表达式

[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?

  • [+-]?:数字最开始的符号位
  • [0-9]*:数字的整数位
  • (\\.[0-9]*)?:数字的小数位
  • ([eE][+-]?[0-9]+)?:数字的科学计数法的幂次位

代码

1
2
3
4
5
6
7
public class Solution {
private static final String NUMBER_EXP = "[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?";

public boolean isNumeric(char[] str) {
return new String(str).matches(NUMBER_EXP);
}
}

本文作者:Jasonkay
本文链接:https://jasonkayzk.github.io/cn/1996/07/27/%E7%AE%97%E6%B3%95-%E8%A1%A8%E7%A4%BA%E6%95%B0%E5%80%BC%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可