java - toString 方法有奇怪的不兼容性?

标签 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;
    }

我的 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/

相关文章:

java - 在 MQ v6 api 中 - 如何停止 MQQueue get() 方法?

string - 尝试与三元搜索树进行自动完成?

java - 为什么 dtruss 不显示此 JNI 代码中的 select 系统调用?

java - 实例方法是按对象还是按类加载到内存中?

java - Java 中的字符串 "8000000000000000"(16 字节)相当于 "BCD"(8 字节)

php - 你如何找到 PHP 中 2 个字符串之间的区别?

javascript - [Vue 警告] : Error in nextTick: "NotFoundError: Failed to execute ' insertBefore' on 'Node'

c++ - NetBeans C++ - 在代码中使用调试检查编译的方法?

c - 如何阅读、理解、分析和调试 Linux 内核 panic ?

java - 使用 java 反编译器 jd-gui 并获取//INTERNAL ERROR//