ArrayList<Integer> factors = new ArrayList<Integer>()
factors = [1, 183, 3, 61]
;
Collections.sort(factors);
是=> [1, 3, 61, 183]
如何将[1, 3, 61, 183]
转到此=> "1 3 61 183"
答案 0 :(得分:1)
您可以使用Collections.sort(factors)
进行排序,然后使用Stream
将其收集到String
,而不是使用Collectors.joining
(或factors.sort(null)
)。
String result = factors.stream() // iterate all the list
.sorted() // make it sorted
.map(Number::toString) // convert Number to String
.collect(Collectors.joining(" ")); // collect them to String
对您来说最令人困惑的部分可能是map
和collect
,下面让我详细解释一下:
map(Number::toString)
与map(n -> n.toString())
相同,后者对迭代遍历的每个元素调用toString
方法。它来自“流”中的Stream<String>
。collect(..)
照原样使用所有Stream
,并使用Collector
从流式元素中创建输出。可以是Map
,List
或任何对象T
-取决于Collector
。Collectors.joining(" ")
是一个收集器,它需要Stream<String>
并将元素与分隔符连接在一起,分隔符在我们的案例" "
中是一个空白。答案 1 :(得分:0)
您可以使用toString
的呼叫ArrayList
并删除括号,
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> factors = Arrays.asList(1, 183, 3, 61);
String arrayString = factors.toString();
System.out.println(arrayString.substring(1, arrayString.length() - 1).replace(",", ""));
}
}
答案 2 :(得分:0)
下面的代码示例应完成此任务。我们正在声明一个用于容纳字符串值的新数组(将其设置为与整数数组相同的大小),并填写整数的字符串值。
String myStringArray[] = new String[factors.length];
for (int i = 0; i < factors.length; i++){
myStringArray[i] = String.valueOf(intArray[i]);
System.out.println(Arrays.toString(myStringArray));
}//end for
答案 3 :(得分:0)
您可以使用该对象的toString()
方法将任何对象直接转换为字符串。
在这里,您可以根据需要操作字符串函数。
将方括号替换为双引号,如下所示
String s = factors.toString();
s=s.replace("[", "\"");
s=s.replace("]", "\"");
,否则您只能使用字符串的子字符串方法删除方括号并使之有用。如下
String s = factors.toString();
s=s.substring(1,s.length()-1);
使用以下方法删除逗号
s=s.replace(",","");
尝试一下,可能会对您有所帮助。