我需要将字符串数组转换为字符串的Java代码。
当前回答
你需要从数组列表中生成字符串的代码,
Iterate through all elements in list and add it to your String result
你可以用两种方式:使用String作为结果或使用StringBuffer/StringBuilder。
例子:
String result = "";
for (String s : list) {
result += s;
}
...但由于性能原因,这不是一个好的实践。更好的方法是使用StringBuffer(线程安全)或StringBuilder,它们更适合添加字符串
其他回答
如果你知道数组有多少元素,一个简单的方法是这样做:
String appendedString = "" + array[0] + "" + array[1] + "" + array[2] + "" + array[3];
当我们使用流时,我们有更多的灵活性,比如 将任意数组对象转换为toString 过滤器->删除时,它是空的 join——>添加连接字符
//Deduplicate the comma character in the input string
String[] splits = input.split("\\s*,\\s*");
return Arrays.stream(splits).filter(StringUtils::isNotBlank).collect(Collectors.joining(", "));
String array[]={"one","two"};
String s="";
for(int i=0;i<array.length;i++)
{
s=s+array[i];
}
System.out.print(s);
Java 8 +
使用String.join ():
String str = String.join(",", arr);
注意,arr也可以是任何Iterable(比如一个列表),而不仅仅是一个数组。
如果你有一个流,你可以使用连接收集器:
Stream.of("a", "b", "c")
.collect(Collectors.joining(","))
遗留(Java 7及更早版本)
StringBuilder builder = new StringBuilder();
for(String s : arr) {
builder.append(s);
}
String str = builder.toString();
或者,如果你只是想要一个“调试风格”的数组转储:
String str = Arrays.toString(arr);
注意,如果你真的是传统的(Java 1.4或更早的版本),你需要用StringBuffer替换那里的StringBuilder。
安卓
使用TextUtils.join ():
String str = TextUtils.join(",", arr);
一般的笔记
您可以根据字符串之间的字符(如果有的话)来修改上面的所有示例。
不要像这里显示的一些答案那样使用字符串并在循环中添加+=。这将使GC飙升,因为创建和丢弃的字符串对象与数组中的项目一样多。对于小型数组,您可能不会真正注意到差异,但对于大型数组,它可能会慢几个数量级。
你可以这样做,给定一个基本类型的数组a:
StringBuffer result = new StringBuffer();
for (int i = 0; i < a.length; i++) {
result.append( a[i] );
//result.append( optional separator );
}
String mynewstring = result.toString();