2009-10-10 15 views

Odpowiedz

1

Jeśli znasz długość tablicy, można łatwo wykonać następujące czynności:

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

Inną opcją jest zrobić co następuje, (co jest czysto akademicki, nie będę używać go w rzeczywistym scenariusz świat jak to usunąć [, ] i <space> ze swoimi strunami):

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

Jeszcze inna opcja, aby przejść wraz z pierwszym podejściem, ale przy użyciu C-like formatowania:

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

Jeżeli długość wynosi 100? Potrzebujesz pętli. – DragonBorn

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

Jeśli masz nieznaną liczbę wpisów, myślę, że trzeba pętlę.

+0

Myślę, że właśnie dał przykład. Co się stanie, jeśli tablica zostanie przekazana w metodzie? – DragonBorn

+0

Cóż, tablica wie, jak duży jest (na przykład w Javie), a następnie można zapętlić. W przeciwnym razie, trudno. –

9

Jeśli nie pętli jest dla ciebie ważniejsze niż zapobieganie importować innej biblioteki lub jeśli używasz apache commons lang już, w każdym razie, można użyć metody StringUtils.join

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

Może Commons Apache mieć inne metody, które mogą być interesujące dla twojego projektu. Znalazłem je jako bardzo przydatne źródło brakujących funkcji w natywnych bibliotekach Java.

+1

Czy to nie jest pętla wewnątrz implementacji? –

+0

+1 za nie ponowne wynalezienie koła. – SingleShot

+3

Oczywiście nie będzie pętli _somhere! _ –

0

Java nie ma metody typu String.join(). Musisz sam rzucić się, jeśli chcesz ukryć pętlę.

2

Bez pętli, można:

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

następnie:

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

To się nazywa rekurencyjne rozwiązanie.

+0

Jest również kwadratowa w rozmiarze wynikowego łańcucha. Powinieneś użyć 'StringBuilder' w' joinpart' do skonstruowania łańcucha. – JaakkoK

+1

Nie sądzę, że będzie to miało znaczenie dla tego konkretnego ćwiczenia, więc nie chciałem komplikować implementacji. To przesłaniałoby istotę rozwiązania, które jest tutaj ważne. –

+0

Dobre rozwiązanie. A co z używaniem kreatora ciągów? Możemy określić pojemność i dołączyć do pętli for zamiast używać rekursywnego. Pytam o to, ponieważ myślę, że byłoby to szybsze dla macierzy o większych rozmiarach. Czy się mylę? – JCasso

1

użyciu Dollar jest proste jak wpisanie:

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

ładny! [:-) –

+2

Ale pytanie dotyczy Java, a nie JavaScript. –

Powiązane problemy