剑指Offer(字符串)-判断字符串是否可以表示数值

喜你入骨 提交于 2020-03-24 10:03:15

  (判断字符串是否可以表示数值)题目描述:


请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。


  解决思路:使用正则表达式,定义一个用于匹配是否满足可以转换为数值的正则表达式,这个正则表达式是String,最终调用其match方法来进行输入与模式的匹配:

import java.util.regex.Pattern;
 
public class Solution {
    public static boolean isNumeric(char[] str) {
        String pattern = "^[-+]?\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?$";
        String s = new String(str);
        return Pattern.matches(pattern,s);
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!