# 数值字串
判断一个字串是否是数值。
# 正则
public boolean isNumber(String s) {
return s.trim().matches("^[+-]?((\\d*\\.?\\d+)|(\\d+\\.?\\d*))([eE][+-]?\\d+)?quot;);
}
1
2
3
2
3
# 暴力
public boolean isNumber1(String s) {
if (s == null || s.length() == 0) {
return false;
}
s = s.trim();
boolean num = false;
boolean point = false;
boolean e = false;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
num = true;
} else if (s.charAt(i) == '.' && !point && !e) {
point = true;
} else if ((s.charAt(i) == 'e' || s.charAt(i) == 'E') && !e && num) {
e = true;
num = false;
} else if (s.charAt(i) == '+' || s.charAt(i) == '-') {
if (i == 0 || s.charAt(i - 1) == 'e' || s.charAt(i - 1) == 'E') {
}
} else {
return false;
}
}
return num;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30