У меня есть массив 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);
Но, конечно, есть лучший способ сделать это?
Нет, это решение абсолютно корректно и очень минимально.
Обратите внимание, что это очень необычная ситуация: поскольку String
обрабатывается специально на Java, даже "foo"
на самом деле является String
. Таким образом, необходимость разделения цепочки на отдельный char
и объединение их обратно не требуется в нормальном коде.
Сравните это с C/С++, где "foo"
у вас есть пакет char
, завершенный нулевым байтом с одной стороны, и String
с другой стороны, и многие преобразования между ними из-за устаревших методов.
String text = String.copyValueOf(data);
или
String text = String.valueOf(data);
возможно, лучше (инкапсулирует вызов new String
).
Это преобразует массив char в строку:
char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
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)
: обратите внимание на Arrays.toString(c)
, потому что вы получите "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
вместо "wwwwww3333dfevvv"
.
Строка в java - это всего лишь объект вокруг массива символов. Следовательно, a
char[]
идентичен строке Unboxed с теми же символами. Создав новую строку из массива символов
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);
Подробнее о массиве символов в строке вы можете ссылаться на ссылки ниже
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]);
} }
}
}
Попробуйте это
Arrays.toString(array)
//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
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
Попробуйте следующее:
CharSequence[] charArray = {"a","b","c"};
for (int i = 0; i < charArray.length; i++){
String str = charArray.toString().join("", charArray[i]);
System.out.print(str);
}
Вы также можете использовать класс StringBuilder
String b = new StringBuilder(a).toString();
Использование String или StringBuilder зависит от ваших требований к методу.
1 альтернативный способ:
String b = a + "";