Fri*_*lin 0 java string debugging
我写了一个toString方法,从前到后依次包含这个缓冲区的字符串列表,用方括号括起来("[]").相邻字符串由字符","(逗号和空格)分隔.字母"R"应出现在左侧以指示缓冲区的后部,字母"F"应出现在右侧以指示缓冲区的前部.例如,包含字符串"A","B"和"C"的缓冲区将表示为"R [A,B,C] F".
然后返回缓冲区的字符串表示形式.
public String toString(){
String s = "[";
for(int h = 0, h <array.length, h++){
s += array[h];
s+= ",";
}
s+="]";
return s;
}
Run Code Online (Sandbox Code Playgroud)
我在for循环中收到错误,说";" 是预期的,不兼容的类型int不能转换为布尔值
for循环需要;不,分离.
更改
for(int h = 0, h <array.length, h++){
Run Code Online (Sandbox Code Playgroud)
至
for(int h = 0; h < array.length; h++) {
Run Code Online (Sandbox Code Playgroud)
所以要拼凑......
@Override
public String toString() {
String s = "[";
for (int h = 0; h < array.length; h++) {
s += array[h];
if (h != array.length - 1) {
s += ", ";
}
}
s += "]";
return s;
}
Run Code Online (Sandbox Code Playgroud)
注意,如果数组很大,或者这个toString将被大量调用,使用StringBuilder比使用String更有效,因为创建的对象更少:
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
for (int h = 0; h < array.length; h++) {
sb.append(array[h]);
if (h != array.length - 1) {
sb.append(", ");
}
}
sb.append("]");
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
如果不是这种情况,那么这可能是过早优化.