使用toString()进行设置

时间:2014-03-28 14:06:58

标签: java

我在我的代码中使用了一个包含一些整数的集合。在我的代码中某处需要将这些数字作为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。

反正是否只将数字存储到字符串中而没有[和,和空格?

6 个答案:

答案 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()));