我写了一个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;
}
我的 for 循环收到一个错误,指出“;”符合预期,并且不兼容的类型 int 无法转换为 boolean
最佳答案
for 循环需要 ;
而不是 ,
分隔符。
改变
for(int h = 0, h <array.length, h++){
到
for(int h = 0; h < array.length; h++) {
所以放在一起......
@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;
}
注意,如果数组很大,或者这个 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();
}
如果情况并非如此,那么这可能是过早的优化。
关于java - toString 方法有奇怪的不兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26188871/