2009-10-10 7 views

Antwort

1

Wenn Sie die Länge Ihres Arrays kennen, können Sie einfach wie folgt vor:

String result = s[0] + s[1] +s[2]; 

Eine weitere Option ist folgendes zu tun (was rein akademisch ist, würde ich es nicht in einem Echt verwenden Welt-Szenario, wie es [, ] entfernen würde, und <space> von Saiten):

String result = Arrays.toString(s).replaceAll("[\\]\\[, ]", ""); 

Noch eine weitere Option, mit dem ersten Versuch gehen zusammen, aber ein C-ähnlichen Formatierer:

System.out.println(String.format("%s%s%s", s)); 
+0

Wenn die Länge 100 ist? Du brauchst eine Schleife. – DragonBorn

0
String result = s[0] + s[1] + s[2]; 

Wenn Sie eine unbekannte Anzahl von Einträgen haben, denke ich, Sie eine Schleife benötigen.

+0

Ich denke, er hat nur ein Beispiel gegeben. Was passiert, wenn das Array in einer Methode übergeben wird? – DragonBorn

+0

Nun das Array weiß, wie groß es ist (in Java sowieso), und dann können Sie eine Schleife. Ansonsten, Pech gehabt. –

9

Wenn das nicht der Fall ist Ihnen wichtiger als Looping verhindern eine andere Bibliothek zu importieren oder wenn Sie apache commons lang bereits verwenden, wie auch immer, können Sie die StringUtils.join Methode verwenden

import org.apache.commons.lang.StringUtils; 
String joined = StringUtils.join(s, ""); 

Vielleicht sind die Apache Commons haben andere Methoden, die auch für Ihr Projekt interessant sein könnten. Ich fand sie eine sehr nützliche Ressource für fehlende Features in den nativen Java-Bibliotheken.

+1

Schließt das nicht einfach innerhalb seiner Implementierung? –

+0

+1 für das Rad nicht neu erfinden. – SingleShot

+3

Offensichtlich wird es eine Schleife _irgendwo sein! _ –

0

Java hat keine String.join() Typmethode. Sie müssen einen selbst rollen, wenn Sie die Schleife ausblenden möchten.

2

ohne Looping können Sie:

public String joinpart(String[] a, int i, String prefix) { 
    if (i < a.length) { 
     return joinpart(a, i + 1, prefix + a[i]); 
    } 
    return prefix; 
} 

dann:

String[] a = new String[]{"Ap", "p", "le"}; 
String apple = joinpart(a, 0, ""); 

Dies ist eine rekursive Lösung genannt wird.

+0

Es ist auch quadratisch in der Größe der resultierenden Zeichenfolge. Sie sollten "StringBuilder" in 'joinpart' verwendet haben, um die Zeichenfolge zu erstellen. – JaakkoK

+1

Ich denke nicht, dass das für diese spezielle Lernübung wichtig ist, also wollte ich die Implementierung nicht komplizieren. Das würde das Wesen der Lösung verschleiern, was hier wichtig ist. –

+0

Gute Lösung. Was ist mit einem String Builder? Wir könnten die Kapazität angeben und in einer for-Schleife anhängen, anstatt rekursiv zu verwenden. Ich frage das, weil ich denke, dass es schneller für größere Arrays wäre. Liege ich falsch? – JCasso

1

Dollar verwendet, ist einfach wie die Eingabe:

String[] array = new String[] { "Ap", "p", "le" }; 
String result = $(array).join(); // result now is "Apple" 
+0

nette eins !! [: –

+2

] Aber die Frage ist über Java, nicht Javascript. –

Verwandte Themen