Java识别字符串是否为数字
在网上看了很多有关Java识别字符串是否为数字的代码,有的用正则表达式,有的用Java内置的字符串转数字方法…,我觉得这些代码还不尽完善,于是自己写的一小段代码,放在这里与大家分享。
//main method
public static boolean isNumLine(String line){
if(line.length()==0){
return false;
} else {
char[] nums = line.toCharArray();
if(isNumMark(nums[0])){
if(nums.length<2){
return false;
} else {
if(isNumChar(nums[1]) && isNumChar(nums[nums.length-1])){
return checkDot(nums);
} else {
return false;
}
}
} else if(isNumChar(nums[0])){
if(isNumChar(nums[nums.length-1])){
return checkDot(nums);
} else {
return false;
}
} else {
return false;
}
}
}
//part 1
private static boolean isNumChar(char ch){
return (ch > 47 && ch < 58) ? true : false;
}
//part 2
private static boolean checkDot(char[] arr){
int dot_n = 0;
int i =1;
while(i<arr.length){
if(arr[i]=='.'){
dot_n++;
} else {
if(!isNumChar(arr[i])){
return false;
}
}
i++;
}
if(dot_n>1){
return false;
}
return true;
}
//part 3
private static boolean isNumMark(char ch){
if(ch=='+' || ch=='-'){
return true;
} else{
return false;
}
}
如有任何更好的建议和建议,请不吝赐教。