判断字符串是否为一个数字(java)

import java.util.Scanner;
public class IsString {
//返回布尔值类型
    public boolean isNumber(String s) {
//①判断去除字符串两端空格后中间是否有空格,没空格才会往下走
        if(s.trim().lastIndexOf(" ")!=-1){
            return false;
        }

//②判断去除两端空格后的字符串第二位是否为e,因为2e12这种是科学计
//数法,也是数字。
        else if(s.trim().lastIndexOf("e")==1){
            return true;
        }
//③正则表达判断去除两端空格后的字符串是否为数字,包括2.以及.2以
//及+.2还有-.2这种。发现“   ”也会判断为满足该正则表达,加了条
//件将其剔除。
        else if(s.trim().matches("\\+?\\d*?\\.?\\d+||\\+?\\d+\\.?\\d*?\\+?\\d*?\\.?\\d+||-?\\d+\\.?\\d*?\\+?\\d*?\\.?\\d+||-?\\d+\\.?\\d*?")&&!s.matches("\\s*")){

            return true;
        }
//不满足②③条件则返回false
       return false;
    }
//测试a是不是一个数字
    public static void main(String[] args) {
        IsString isString=new IsString();
       Scanner scanner=new Scanner(System.in);
        String a=scanner.next();
       boolean b= isString.isNumber(a);
       System.out.println(b);
    }


}
View Code

以上是自己的想法。

posted @ 2020-07-17 16:25  結城友奈  阅读(307)  评论(0)    收藏  举报