判断字符串是否为一个数字(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); } }
以上是自己的想法。
浙公网安备 33010602011771号