2012-03-25 8 views

Odpowiedz

47

Spróbuj tego:

String[] trimmedArray = new String[array.length]; 
for (int i = 0; i < array.length; i++) 
    trimmedArray[i] = array[i].trim(); 

Teraz trimmedArray zawiera te same ciągi jako array, ale bez początkowe i końcowe spacje. Alternatywnie, można napisać to na modyfikację sznurki w miejscu w tej samej tablicy:

for (int i = 0; i < array.length; i++) 
    array[i] = array[i].trim(); 
5

Można po prostu iteracyjne nad elementów tablicy i nazywają array[i].trim() na każdym elemencie

+6

i pamiętaj, aby przypisać z powrotem do 'array [i]' !!!! w przeciwnym razie iteracja nie będzie miała żadnego efektu. – amit

+0

Będziesz musiał przechowywać gdzieś przycięte łańcuchy, ale niekoniecznie w 'tablica [i]'. Lepiej byłoby przechowywać je w drugiej macierzy, w zależności od potrzeb PO – hehewaffles

+2

Jego pytanie ["usunąć białą przestrzeń ze wszystkich elementów ..."] sugeruje, że chce nadpisać bieżące wartości za pomocą przyciętych łańcuchów, więc jeśli to rzeczywiście tak jest - będziesz musiał go odłożyć do 'array [i]' – amit

-2
String val = "hi hello prince"; 
String arr[] = val.split(" "); 

for (int i = 0; i < arr.length; i++) 
{ 
    System.out.print(arr[i]); 
} 
+0

Powinieneś podać, dlaczego twój kod działa? Być może PO potrzebuje dodatkowych informacji. –

6

Wiem, że to bardzo stary post, ale ponieważ Java 1.8 jest ładniejszy sposób przyciąć co STRING w tablicy.

Java 8 Lambda rozwiązanie Expression:

List<String> temp = new ArrayList<>(Arrays.asList(yourArray)); 
temp.forEach(e -> {temp.set((temp.indexOf(e), e.trim()}); 
yourArray = temp.toArray(new String[temp.size()]); 

z tego rozwiązania nie trzeba utworzyć nową tablicę.
Podobnie jak w roztworze Óscar López

+1

Po prostu niewielka edycja: 'temp.forEach (e -> {temp.set (temp.indexOf (e), s.trim());});', w przeciwnym razie daje mi błąd składni. –

12

Inną opcją Java 8 lambda:

String[] array2 = Arrays.stream(array).map(String::trim).toArray(String[]::new); 

i brzydki ale zoptymalizowana wersja bez nowego stworzenia tablicy

Arrays.stream(array).map(String::trim).toArray(unused -> array); 

Original "tablica" jest modyfikowany.

4

W Java 8 Arrays.parallelSetAll wydaje gotowe do tego celu:

import java.util.Arrays; 

Arrays.parallelSetAll(array, (i) -> array[i].trim()); 

to zmieni to oryginalnej tablicy w miejscu, zastępując każdy element w wyniku ekspresji lambda.

6

Dodaj commons-lang3-3.1.jar w ścieżce budowania aplikacji. Skorzystaj z poniższego fragmentu kodu, aby przyciąć tablicę ciągów.

String array = {" String", "Tom Selleck "," Fish "}; 
array = StringUtils.stripAll(array); 
Powiązane problemy