Conversion de chaîne en tableau «Character» en Java

Je veux convertir une Ssortingng en un tableau d’objects de classe Character , mais je ne parviens pas à effectuer la conversion. Je sais que je peux convertir un Ssortingng en un tableau de type de données primitif “char” avec la méthode toCharArray() mais cela ne aide pas à convertir un Ssortingng en un tableau d’objects de type Character .

Comment pourrais-je y aller?

Utilisez ceci:

 Ssortingng str = "testSsortingng"; char[] charArray = str.toCharArray(); Character[] charObjectArray = ArrayUtils.toObject(charArray); 

Un liner avec java-8 :

 Ssortingng str = "testSsortingng"; //[t, e, s, t, S, t, r, i, n, g] Character[] charObjectArray = str.chars().mapToObj(c -> (char)c).toArray(Character[]::new); 

Qu’est-ce qu’il fait est:

  • obtenir un IntStream des caractères (vous pouvez aussi regarder codePoints() )
  • mapper chaque valeur de “caractère” à Character (vous devez lancer pour dire que c’est vraiment un caractère, et puis Java l’encadrera automatiquement à Character )
  • obtenir le tableau résultant en appelant toArray()

Pourquoi ne pas écrire vous-même une petite méthode

 public Character[] toCharacterArray( Ssortingng s ) { if ( s == null ) { return null; } int len = s.length(); Character[] array = new Character[len]; for (int i = 0; i < len ; i++) { array[i] = new Character(s.charAt(i)); } return array; } 

J’espère que le code ci-dessous vous aidera.

 Ssortingng s="Welcome to Java Programming"; char arr[]=s.toCharArray(); for(int i=0;i
		      	

Ssortingng#toCharArray renvoie un tableau de caractères, vous avez un tableau de Character . Dans la plupart des cas, cela n’a pas d’importance si vous utilisez un Character ou un Character car il existe une fonction d’ auto – sélection . Le problème dans votre cas est que les tableaux ne sont pas auto-imprimés, je vous suggère d’utiliser un tableau de caractères ( char[] ).

Vous devez écrire votre propre méthode dans ce cas. Utilisez une boucle et obtenez chaque caractère en utilisant charAt(i) et réglez-le sur votre tableau Character[] utilisant arrayname[i] = ssortingng.charAt[i] .

Cette méthode prend Ssortingng en argument et renvoie le tableau de caractères

 /** * @param sourceSsortingng * :Ssortingng as argument * @return CharcterArray */ public static Character[] toCharacterArray(Ssortingng sourceSsortingng) { char[] charArrays = new char[sourceSsortingng.length()]; charArrays = sourceSsortingng.toCharArray(); Character[] characterArray = new Character[charArrays.length]; for (int i = 0; i < charArrays.length; i++) { characterArray[i] = charArrays[i]; } return characterArray; } 

une autre façon de le faire.

 Ssortingng str="I am a good boy"; char[] chars=str.toCharArray(); Character[] characters=new Character[chars.length]; for (int i = 0; i < chars.length; i++) { characters[i]=chars[i]; System.out.println(chars[i]); } 

Si vous travaillez avec JTextField, cela peut être utile.

 public JTextField display; Ssortingng number=e.getActionCommand(); display.setText(display.getText()+number); ch=number.toCharArray(); for( int i=0; i
		      	

le chaînage est toujours le meilleur: D

 Ssortingng str = "somethingPutHere"; Character[] c = ArrayUtils.toObject(str.toCharArray()); 

Si vous ne voulez pas vous fier aux API tierces, voici un code de travail pour JDK7 ou inférieur. Je ne suis pas en train d’instancier des objects de caractère temporaires comme le font d’autres solutions ci-dessus. les boucles foreach sont plus lisibles, voyez-vous 🙂

 public static Character[] convertSsortingngToCharacterArray(Ssortingng str) { if (str == null || str.isEmpty()) { return null; } char[] c = str.toCharArray(); final int len = c.length; int counter = 0; final Character[] result = new Character[len]; while (len > counter) { for (char ch : c) { result[counter++] = ch; } } return result; } 

J’ai utilisé la classe SsortingngReader dans java.io. L’une de ses fonctions read(char[] cbuf) lit le contenu d’une chaîne dans un tableau.

 Ssortingng str = "hello"; char[] array = new char[str.length()]; SsortingngReader read = new SsortingngReader(str); try { read.read(array); //Reads ssortingng into the array. Throws IOException } catch (IOException e) { e.printStackTrace(); } for (int i = 0; i < str.length(); i++) { System.out.println("array["+i+"] = "+array[i]); } 

En cours d'exécution cela vous donne la sortie:

 array[0] = h array[1] = e array[2] = l array[3] = l array[4] = o