什么是有效数字(有效数字的定义)
3、正/负号 - "+"/"-" 只能出现在第一个字符或"e"后面
hasDot = true;
}else if(s.charAt(0) == '-'){
数字 0-9
}else if (!Character.isDigit(s.charAt(0))){
return false;
boolean hasE = false;
if(s.length() == 0){
1、字符串中只能包含
问题描述:
}else{
hasDot = true;
return false;
if(!Character.isDigit(c)){
"e3" => false
if(hasE || !hasNum){
验证给定的字符串是否可以解释为十进制数字。
" 0.1 " => true
return false;
if(null == s){
boolean hasDot = false;
boolean hasNum = false;
}
}
numAfterE = true;
"1 a" => false
}
判断一个字符串是否可以解释为十进制数字,可以使用一下规则来校验:
return false;
4、字符串中最多出现一个小数点 - ".",且"."不能出现在"e"后面
如果第一个字符为小数点,默认小数点前有一个'0'
" -90e3 " => true
start ++;
}
}else if(s.charAt(0) == '.'){
正/负号 - "+"/"-"
if(c == '+' || c == '-'){
小数点 - "."
" 99e2.5 " => false
if(s.charAt(0) == '+'){
"-+3" => false
数字 0-9
" 6e-1" => true
s = s.trim();
numAfterE = false;
char c = s.charAt(start);
指数 - "e"
return false;
}
return hasNum && numAfterE;
}
java代码:
"2e10" => true
}else{
}
boolean numAfterE = false;
5、字符串中最多出现一个指数 - "e",且"e"之前之后必须有数字 0-9;如果"e"之后有正/负号 - "+"/"-",必须在"e"与数字之间
return false;
正/负号 - "+"/"-"
正/负号 - "+"/"-"
"0" => true
start ++;
2、第一个字符只能为
public boolean isNumber(String s) {
}
数字 0-9
当然,在输入中,这些字符的上下文也很重要。
指数 - "e"
"53.5e93" => true
}else if(s.charAt(start) == '.'){
hasE = true;
思路:
}
}else {
if(start > 0 && s.charAt(start - 1) != 'e'){
例如:
小数点 - "."
说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。这里给出一份可能存在于有效十进制数字中的字符列表:
hasNum = true;
"95a54e53" => false
start ++;
int start = 0;
return false;
start ++;
" --6 " => false
if(hasDot || hasE){
} else if(s.charAt(start) == 'e'){
" 1e" => false
}
小数点 - "."
while(start < s.length()){
"abc" => false
- 0000
- 0000
- 0000
- 0000
- 0000