第65题:有效数字

一. 问题描述

验证给定的字符串是否可以解释为十进制数字。

例如:

"0" => true

" 0.1 " => true

"abc" => false

"1 a" => false

"2e10" => true

" -90e3   " => true

" 1e" => false

"e3" => false

" 6e-1" => true

" 99e2.5 " => false

"53.5e93" => true

" --6 " => false

"-+3" => false

"95a54e53" => false

说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。这里给出一份可能存在于有效十进制数字中的字符列表:

数字 0-9

指数 - "e"

正/负号 - "+"/"-"

小数点 - "."

当然,在输入中,这些字符的上下文也很重要。

二. 解题思路

本题利用正则表达式来进行求解,将十进制数字的正则表达式模型写出来,然后进行匹配就行了,这道题的关键就是如何写正则表达式,可以进行学习。

三. 执行结果

执行用时 :21 ms, 在所有 java 提交中击败了25.46%的用户

内存消耗 :36.7 MB, 在所有 java 提交中击败了88.37%的用户

四. Java代码

class Solution {
    public boolean isNumber(String s) {
            String line="^\s*[\+-]?((\d+(\.\d*)?)|\.\d+)([eE][\+-]?\d+)?\s*$";
        boolean isMatch =s.matches(line);
        return isMatch;
    }
}
原文地址:https://www.cnblogs.com/xiaobaidashu/p/11672049.html