判断字符串是否表示数值(包括整数和小数)
public class Main20 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
boolean b = new Main20().isInt(str);
System.out.println(b);
}
private boolean isInt(String str) {
if (str == null || str.length() == 0)return false;
char[] ch = str.trim().toCharArray();
boolean num = false;
boolean dot = false;
boolean e = false;
for (int i = 0; i < ch.length; i++) {
if (ch[i] >= '0' && ch[i] <= '9'){
num = true;
}else if (".".equals(String.valueOf(ch[i]))){
if (dot || e)
return false;
dot = true;
}else if ("e".equals(String.valueOf(ch[i]).toLowerCase())){
if (e || !num)
return false;
e = true;
num = false;
}else if ("-".equals(String.valueOf(ch[i])) || "+".equals(String.valueOf(ch[i]))){
if (i != 0 && ! ( "e".equals(String.valueOf(ch[i-1]).toLowerCase()))){
return false;
}
}else {
return false;
}
}
return num;
}
}