我在我的代码中使用了一个包含一些整数的集合。在我的代码中某处需要将这些数字作为String,以便函数可以对它们进行操作。 (该函数是permutation,它将String作为输入参数。)
当我的集合如下:
Set<Integer> U= new TreeSet<Integer>();
U.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9));
我需要一个长度为9的字符串,其中包含九个数字。但是通过使用
String str=U.toString();
str为[1, 2, 3, 4, 5, 6, 7, 8, 9]
,长度为27。
反正是否只将数字存储到字符串中而没有[和,和空格?
答案 0 :(得分:1)
创建TreeSet的子类并根据需要覆盖toString()方法!
答案 1 :(得分:1)
@Override扩展类中的toString。一个简单的for循环应该这样做
答案 2 :(得分:1)
一种方法是创建自己的方法。您可以遍历Set
,并使用StringBuilder
构建String
:
public String myToString() {
StringBuilder sb = new StringBuilder();
for (Integer i : U) {
sb.append(i);
}
return sb.toString();
}
另一种方法是覆盖toString()
方法。实施方式与上述类似:
@Override
public String toString() {
// ...
}
答案 3 :(得分:1)
您需要自己实施:
public static String setToString(Set<Integer> set) {
StringBuilder sb = new StringBuilder();
for (Integer i : set) {
sb.append(i);
}
return sb.toString();
}
答案 4 :(得分:0)
你可以试试这个:
Set<Integer> U = new TreeSet<Integer>();
U.addAll(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
StringBuilder sb = new StringBuilder(U.size());
for (int a : U)
sb.append(a);
System.out.println(sb);
123456789
Java 8方法:
Iterable<String> iter = U.stream().map(Object::toString)::iterator;
System.out.println(String.join("", iter));
123456789
答案 5 :(得分:0)
简单使用:
System.out.println(Arrays.toString(U.toArray()));