如何一次性从Set中获取数据

时间:2009-05-29 02:32:27

标签: java collections printing

我希望将set接口的所有值一起作为逗号分隔的字符串。

例如(Java语言):

Set<String> fruits=  new HashSet<String>();

fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");

如果我将设置打印为fruits.toString,则输出将为:

[Apple, Banana, Orange]

但我的要求是Apple, Banana, Orange没有方括号。

4 个答案:

答案 0 :(得分:3)

我假设这是Java。

MartinodF快速而肮脏的toString().substring方法可行,但您真正需要的是join方法。如果您进行了大量的字符串操作,我建议您查看Apache Commons Lang库。它提供了许多Java标准库中缺少的有用功能,包括一个可以让你这样做的StringUtils类:

Set fruits =  new HashSet();

fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");

String allFruits = StringUtils.join(fruits, ", ");
// allFruits is now "Apple, Banana, Orange"

答案 1 :(得分:1)

又快又脏:

value.toString().substring(1, value.toString().length - 1);

答案 2 :(得分:1)

假设C#3.5

var fruits = new HashSet<string>();

fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Orange");

Console.WriteLine(string.Join(", ",fruits.ToArray()));

答案 3 :(得分:0)

使用来自commons lang的StringUtils.join

Set fruits =  new HashSet();

fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");


System.out.println(StringUtils.join(fruits, ','));