【问题标题】:Trying to convert an ArrayList to String [closed]尝试将 ArrayList 转换为 String [关闭]
【发布时间】:2013-05-31 18:04:49
【问题描述】:

我有以下代码:

ArrayList<String> idattributes=new ArrayList();
idattributes.add("7");
idattributes.add("10");
idattributes.add("12");

我正在尝试将其转换为这样的字符串:

String listString = "";
for (String s : idattributes) {
      listString += s + "\t";
} 
System.out.println(listString);

I get: "7   10  12  "

如何删除这些多个空格?我只想要一个字符串“7 10 12” 将 idattributes 转换为字符串的任何其他好方法? 谢谢

【问题讨论】:

  • 那些不是“多个空格”;它们是标签,这正是"\t" 告诉代码要做的事情。为什么不使用List#toString()
  • "\t" 是一个标签。如果你只想要一个简单的空格,这样说:listString += s + " ";
  • 如果您希望项目之间有一个空格,请使用" " 而不是"\t"。如果您指的是末尾的空格,trim().

标签: java string arraylist


【解决方案1】:

有时不要尝试太聪明并使用低效的 trim() 是值得的 :)

String listString = "";
for (String s : idattributes) {
    listString += s + " ";
} 
listString = listString.trim();

除非您打算将标签放在其中,在这种情况下

listString += s + "\t"

很好,但仍然需要 trim()。

【讨论】:

  • +1 - 你先抓住了。
【解决方案2】:

要获得"7 10 12" 代码必须是这样的

String listString = "";
for (String s : idattributes) {
  listString += s + " ";
} 
System.out.println(listString.trim());

【讨论】:

    【解决方案3】:

    你有几个选择:

    String listString = "";
    for (String s : idattributes) {
          listString += s + " ";
    } 
    listString = listString.trim();
    
    System.out.println(listString);
    

    或者,

    System.out.println(idattributes.toString());
    

    【讨论】:

      【解决方案4】:

      首先,将“\t”替换为“”,然后选择:

      for (int i = 0 ; i < idattributes.size() ; i++)
      {
          listString += itattributes.get(i);
          if (i != idattributes.size() - 1)
              listString += " ";
      }
      

      和:

      您的代码,后跟listString.trim()

      【讨论】:

        【解决方案5】:

        另一个好方法是使用 Guava 的 Joiner 类。

         String listString = Joiner.on(" ").join( idattributes );
        

        【讨论】:

          【解决方案6】:

          使用 StringBuilder 代替 String 是个好主意。你可以找到更多信息here

          StringBuilder sb = new StringBuilder();
          for (String s : idattributes) {
                sb.append(s).append(" ");
          } 
          String listString = sb.toString().trim()l
          System.out.println(listString);
          

          您也可以使用 Guava 库的 Joiner

          String listString = Joiner.on(" ").join( idattributes ).trim();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-12-04
            • 2011-08-20
            • 1970-01-01
            • 1970-01-01
            • 2017-11-09
            • 1970-01-01
            • 2012-08-31
            相关资源
            最近更新 更多