仓库源文站点原文


title: '算法:表示数值的字符串' cover: https://img.paulzzh.com/touhou/random?56 categories: 算法题目 date: 1996-07-27 08:00:00 toc: true

tags: [算法题目, 字符串, 正则表达式]

<br/>

<!--more-->

表示数值的字符串

表示数值的字符串

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

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

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


分析

使用正则表达式判断即可

更多关于正则表达式见:

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

[+-]?[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);
    }
}