为什么字符串 function BinaryConverter(str) {
var num=str.split("");
var powers=[];
var sum=0;
for(var i=0;i<num.length;i++){
powers.push(i);
}
for(var i=powers.length-1;i>=0;i--){
for(var j=0;j<num.length;j++){
sum+=Math.pow(2,i)*num[j];
}
}
return sum;
};
在转换为小写后会打印s
?
"Hello, World"
答案 0 :(得分:8)
String
是不可变的。您需要将String#toLowerCase
的结果重新分配给变量:
s = s.toLowerCase();
答案 1 :(得分:2)
字符串是Java中的特殊对象。 Java开发人员故意将它们创建为不可变(出于各种安全和性能原因)。
这意味着当您认为更改String对象的状态时,实际上会创建一个新的String对象(并且之前的对象并未真正更改)。
因此,为了使代码有效,您必须将方法的结果分配给某个字符串:
s = s.toLowerCase();