帮忙解释这段JAVA代码

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:23:50
这段是一个朋友给我写的JAVA代码,调用这个方法可以判断字符串是不是数字,不过我看不大懂!请会的帮忙解释一下!满意给追分!

/**
* 判断字符串是不是数字
* @param str
* @return 真/假
*/
private boolean isDigit(String str){
int d=0;
char[] c=str.toCharArray();
for(int i=0;i<c.length;i++){
if(!Character.isDigit(c[i])){
if((c[i]+"").equals(".")){
d++;
}else
return false;
}
}
if(d<2){
return true;
}else{
return false;
}
}

还是我来给你回答吧:
char[] c=str.toCharArray(); //把字符串转换成char型的数组.
for循环是从数组里依次取一个字符,
比如字符串是"adkal"第一次取的是'a',第二次循环取的是'd'....
每取一个"字符",就用Character.isDigit()方法判断这个字符是否是数字,如果不是数字那么断判是不是小数点".",如果是小数点,那么变量"d"加一(因为小数字只能在一个数字中出现一次),如果字符不是数字也不是小数点,就返回false,如果是数字或小数点,那么再次循环...
最后判断d是否小于2(因为小数点只能出现一次,也可不出现).

private boolean isDigit(String str){ //判断是否是数字的方法
int d=0; //初值
char[] c=str.toCharArray();//定义一个数组
for(int i=0;i<c.length;i++){ //循环输出数组
if(!Character.isDigit(c[i])){ //判断数组是不是数字
if((c[i]+"").equals(".")){ //如果这个数组是点的话
d++; //d=1
}else
return false;//否则返回假
}
}
if(d<2){ //判断d是否小于2(很明显d=1<2)
return true; //返回真
}else{
return false;
}
}