J'ai un tableau de caractères:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
Ma solution actuelle est de faire
String b = new String(a);
Mais il y a sûrement une meilleure façon de faire cela?
Non, cette solution est absolument correcte et très minimale.
Notez cependant qu'il s'agit d'une situation très inhabituelle: étant donné que String
est traité spécialement en Java, même "foo"
est en fait un String
. Par conséquent, la nécessité de fractionner une chaîne en char
s individuel et de les rejoindre n'est pas nécessaire dans le code normal.
Comparez ceci à C/C++ où "foo"
vous avez un ensemble de char
s terminés par un octet de zéro d'un côté et string
de l'autre côté, ainsi que de nombreuses conversions entre eux à l'aide de méthodes héritées.
String text = String.copyValueOf(data);
ou
String text = String.valueOf(data);
est sans doute mieux (encapsule l'appel new String
).
Ceci reconvertira le tableau de caractères en chaîne:
char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
Maintenant, pour convertir un tableau de caractères en String, il y a deux façons.
Arrays.toString(c);
Renvoie la chaîne [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
.
Et:
String.valueOf(c)
Renvoie la chaîne wwwwww3333dfevvv
.
En résumé: faites attention à Arrays.toString(c)
, car vous obtiendrez "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
au lieu de "wwwwww3333dfevvv"
.
Une chaîne dans Java n'est qu'un objet autour d'un tableau de caractères. D'où un
char[]
est identique à une chaîne sans boîte contenant les mêmes caractères. En créant une nouvelle chaîne à partir de votre tableau de caractères
new String(char[])
vous dites essentiellement au compilateur de sélectionner automatiquement un objet String autour de votre tableau de caractères.
Vous pouvez utiliser la méthode String.valueOf
.
Par exemple,
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);
Pour plus d'informations sur les tableaux de caractères, vous pouvez consulter les liens ci-dessous.
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
Conversion d'un type de tableau donné en chaîne à l'aide de la fonction Java 8 Stream
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
Essaye ça
Arrays.toString(array)