当以下测试用例:将传入字符串中小于5的数转成0反之1时
public class FakeBinary {
public static String fakeBin(String numberString) {
StringBuilder num=new StringBuilder(numberString);
for(int i=0;i<num.length();i++){
if(num.charAt(i)<5){
num.replace(i,i+1,"0");
}else{
num.replace(i,i+1,"1");
}
}
return num.toString();
}
}
代码报错,此时将判断中代码改为
if(Character.getNumericValue(num.charAt(i))<5)
成功
这时与本人之前了解的直接使用str.charAt()不同,猜测是上面将
StringBuilder num=new StringBuilder(numberString);
这里改变了类型( )需要将num通过Character.getNumericValue()进行( )变换成( )使得结果转成了数字完成的比较过程
这块学的不好,先记录存档下来,正在找人问