我有一个char数组:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
我目前的解决方案是
String b = new String(a);
但是肯定有更好的方法吗?
我有一个char数组:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
我目前的解决方案是
String b = new String(a);
但是肯定有更好的方法吗?
Answers:
String text = String.copyValueOf(data);
要么
String text = String.valueOf(data);
可以说更好(封装了new String
调用)。
String(char[])
或对其进行变体。复制部分在内部完成String(char[])
。除了与其他valueOf
方法对称之外,这对直接调用没有任何好处。
String
以不兼容的方式更改和/或增强其实现,或者在运行时可以选择几个相互竞争的实现,则使用静态工厂方法是有意义的。像这样低级的事情不会发生String
。因此,我的前提是:使用最小的锤子,而不是最大的锤子。
CharSequence
接口的事实表明,您的“不会在字符串之类的低级内容上发生错误”的缺点是-他们不会更改字符串中发生的事情,因为他们很早就绑定了字符串,现在他们希望他们没有。
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
现在将字符数组转换为String,有两种方法。
Arrays.toString(c);
返回字符串[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
。
和:
String.valueOf(c)
返回字符串wwwwww3333dfevvv
。
总结:注意Arrays.toString(c)
,因为您会得到"[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
代替"wwwwww3333dfevvv"
。
Java中的String仅仅是围绕char数组的对象。因此
char[]
与具有相同字符的未装箱的String相同。通过从字符数组创建新的字符串
new String(char[])
实际上,您是在告诉编译器在字符数组周围自动装箱String对象。
您可以使用String.valueOf
方法。
例如,
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
String b = String.valueOf(a);
System.out.println("Char Array back to String is: " + b);
有关将char数组转换为字符串的更多信息,请参见下面的链接
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
https://www.flowerbrackets.com/convert-char-array-to-string-java/
package naresh.java;
public class TestDoubleString {
public static void main(String args[]){
String str="abbcccddef";
char charArray[]=str.toCharArray();
int len=charArray.length;
for(int i=0;i<len;i++){
//if i th one and i+1 th character are same then update the charArray
try{
if(charArray[i]==charArray[i+1]){
charArray[i]='0';
}}
catch(Exception e){
System.out.println("Exception");
}
}//finally printing final character string
for(int k=0;k<charArray.length;k++){
if(charArray[k]!='0'){
System.out.println(charArray[k]);
} }
}
}
//Given Character Array
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
//Converting Character Array to String using String funtion
System.out.println(String.valueOf(a));
//OUTPUT : hello world
使用Java 8 Stream函数将任何给定的Array类型转换为String
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
尝试这个
Arrays.toString(array)
只需使用如下的String.value即可;
private static void h() {
String helloWorld = "helloWorld";
System.out.println(helloWorld);
char [] charArr = helloWorld.toCharArray();
System.out.println(String.valueOf(charArr));
}
您也可以使用StringBuilder类
String b = new StringBuilder(a).toString();
根据您的方法要求,使用String或StringBuilder会有所不同。
1种替代方法是:
String b = a + "";
toString
可以正常工作char[]
。它可能适用于某些特定的供应商和JVM版本。
a
并创建另一个与a.toString()
和连接的String对象""