web-dev-qa-db-fra.com

Comment reconvertir un tableau de caractères en chaîne?

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?

378
chutsu

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 chars 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 chars 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.

202
A.H.

String text = String.copyValueOf(data);

ou

String text = String.valueOf(data);

est sans doute mieux (encapsule l'appel new String).

141
David Titarenco

Ceci reconvertira le tableau de caractères en chaîne:

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
36
Billz
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".

11
AalekhG

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.

6
Nathan Meyer

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/

3
Shiva
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]);
            }       }
    }
}
2
Ramnaresh Mantri
 //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());
0
Arpan Saini

Essaye ça

Arrays.toString(array)
0
Jessica Pereira