-2

我有以下代码:

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 转换为字符串的好方法吗?谢谢

4

6 回答 6

1

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

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

除非你打算在那里有标签,在这种情况下

listString += s + "\t"

很好,但是 trim() 仍然是必需的。

于 2013-05-31T18:07:14.433 回答
0

你有几个选择:

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

System.out.println(listString);

或者,

System.out.println(idattributes.toString());
于 2013-05-31T18:11:17.263 回答
0

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

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

和 :

您的代码,然后是listString.trim()

于 2013-05-31T18:11:57.283 回答
0

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

 String listString = Joiner.on(" ").join( idattributes );
于 2013-05-31T18:11:59.500 回答
0

获取"7 10 12"代码必须像

String listString = "";
for (String s : idattributes) {
  listString += s + " ";
} 
System.out.println(listString.trim());
于 2013-05-31T18:10:58.883 回答
0

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

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

您也可以使用 Guava lib 的Joiner

String listString = Joiner.on(" ").join( idattributes ).trim();
于 2013-05-31T18:16:27.003 回答