文章506
标签266
分类65

算法:表示数值的字符串


表示数值的字符串

表示数值的字符串

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

例如,字符串”+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]+)?:数字的科学计数法的幂次位

代码

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/1996/07/27/算法-表示数值的字符串/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可