【问题标题】:Java: Getting A String From An ArraylistJava:从 Arraylist 中获取字符串
【发布时间】:2012-04-04 13:19:25
【问题描述】:

当我使用 for 循环时(像这样:)

  StringBuilder string = new StringBuilder();
    for(int i1 = 0; i1 < array.size()){
      string.append(arraylist.get(i).toString());
    } 

我遇到了 outOfBouds 崩溃。我需要逐个对象读取arraylist对象,所以 arraylist.toString() 没用。

有什么帮助吗?谢谢

【问题讨论】:

    标签: java string list arraylist


    【解决方案1】:

    你需要增加循环控制变量。

    for(int i=0; i<arraylist.size();i++){
       string.append(arraylist.get(i).toString());
    }
    

    或者

    for(Object str:arraylist){
      string.append(str.toString());
    } 
    

    【讨论】:

      【解决方案2】:

      您在循环中使用i1,但您正在访问元素i

      这种混淆可能是由使用非描述性变量名引起的。例如,我看到 arrayarraylist - 它们应该是相同的吗?

      所以第一个问题就是清理一些代码。如果那不是确切的代码,那么请告诉我们是什么。另请注意,您可以通过缩进所有 4 个空格来制作代码块。向我们展示堆栈跟踪是什么也是一个好主意。

      理想情况下,我们可以编译一个小而完整的程序,向我们展示错误会产生最快的纠正答案。您甚至可能在创建该小程序时发现问题。

      【讨论】:

        【解决方案3】:

        仅仅三行代码就有这么多错误。真的。试试这个:

        StringBuilder string = new StringBuilder();
        for (int i1 = 0; i1 < arraylist.size(); i1++) {
            string.append(arraylist.get(i1).toString());
        }
        

        或者这个:

        StringBuilder string = new StringBuilder();
        for (Object str : arraylist ) {
            string.append(str.toString());
        }
        

        【讨论】:

          【解决方案4】:

          我会这样写:

          public static String concat(List<String> array, String separator) {
              StringBuilder builder = new StringBuilder(1024);
              for (String s : array) {
                  build.append(s).append(separator);
              }
              return builder.toString();
          }
          

          您是否考虑过如何在串联版本中将每个字符串分开?想要每个之间有一个空间吗?这看起来不是很有用。

          【讨论】:

            【解决方案5】:

            如果您使用任何类型的 Object,那么您必须重写 toString() 方法。并提供要在其中附加字符串的字符串。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-11-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-09-16
              • 2013-10-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多