Konvertieren von Zeichendaten in Zeichenketten in Java

8

Ich habe ein Character -Array (kein char-Array) und möchte es in eine Zeichenkette konvertieren, indem ich alle Zeichen im Array kombiniere.

Ich habe folgendes für eine gegebene Character[] a versucht:

%Vor%

Aber das funktioniert nicht, da a kein Char-Array ist. Ich würde jede Hilfe schätzen.

    
Aasam Tasaddaq 31.10.2012, 03:05
quelle

10 Antworten

5

Iterate und verketten Ansatz:

%Vor%

Ausgabe:

  

abc

    
Juvanis 31.10.2012, 03:08
quelle
14
%Vor%

ArrayUtils ist Teil von Apache Commons Lang .

    
Torious 31.10.2012 03:09
quelle
8

Am effizientesten ist dies wahrscheinlich:

%Vor%

Anmerkungen:

  1. Die Verwendung eines StringBuilder vermeidet das Erstellen mehrerer Zwischenzeichenfolgen.
  2. Durch die Bereitstellung der ursprünglichen Größe werden Neuzuweisungen vermieden.
  3. Die Verwendung von charValue() verhindert den Aufruf von Character.toString() ...

Allerdings würde ich wahrscheinlich mit der eleganten Antwort von @ Torious fortfahren, es sei denn, die Leistung wäre ein bedeutendes Problem.

Übrigens sagt die JLS, dass der Compiler String-Verkettungsausdrücke mit äquivalentem StringBuilder-Code optimieren darf ... aber er sanktioniert diese Optimierung nicht für mehrere Anweisungen. Daher so etwas wie:

%Vor%

führt wahrscheinlich viele getrennte Verkettungen durch und erzeugt (und verwirft) viele Zwischenzeichenfolgen.

    
Stephen C 31.10.2012 03:42
quelle
3

Es ist wahrscheinlich langsam, aber für Tritte hier ist ein hässlicher Einzeiler, der anders ist als die anderen Ansätze -

%Vor%     
rees 31.10.2012 03:29
quelle
3

Wahrscheinlich ein Overkill, aber auf Java 8 könntest du das tun:

%Vor%     
Miguel Durazo 23.03.2016 21:22
quelle
2

Rufen Sie bei jedem Index die Methode toString auf und verketten Sie das Ergebnis mit Ihrem String s.

    
Kiith Nabaal 31.10.2012 03:11
quelle
2

Konvertieren Sie zuerst Character[] in char[] und verwenden Sie String.valueOf(char[]) , um den String wie folgt zu erhalten:

%Vor%     
Yogendra Singh 31.10.2012 03:12
quelle
2

Wie wäre es mit dem Erstellen einer eigenen Methode, die durch die Liste der Zeichen-Arrays iteriert und dann jeden Wert an Ihre neue Zeichenfolge anfügt.

So ähnlich.

%Vor%     
Tom 31.10.2012 03:16
quelle
0
%Vor%     
Harikrishnan 03.08.2013 08:53
quelle
0

Wenn du Guava hast, kannst du Chars.toArray() verwenden, um char[] zu erzeugen, dann sendest du das Ergebnis einfach an String.valueOf() .

    
Johnny Wu 17.04.2016 16:18
quelle

Tags und Links