2012-10-05 19 views
5

Jak usunąć białą przestrzeń z początku ciągu znaków w Javie bez usuwania z końca?Jak usunąć białą przestrzeń od początku ciągu?

Jeśli wartość ta wynosi:

String temp = " hi " 

Więc jak mogę usunąć tylko wiodącą white-space więc wygląda to tak:

String temp = "hi " 

Obecna implementacja mam jest do pętli, sprawdzanie pierwszego znaku i tworzenie podciągu do momentu osiągnięcia pierwszej wartości nieobjętej odstępem.

Dzięki!

Odpowiedz

7

Można użyć:

temp = temp.replaceFirst("^\\s*", "") 
+1

Nie będzie działać z ciągami, które już nie mają białych znaków. Powinien to być 'temp.replaceFirst ("^\\ s * "," ");' tak, aby '^' odpowiadało początkowi łańcucha. – Brian

+0

OP musi również upewnić się, że ciąg zaczyna się od białych znaków. –

+1

'^' jest potrzebne tylko podczas używania 'String.replaceAll'. Chociaż będzie działał dobrze, nie jest potrzebny dla 'String.replaceFirst' – Reimeus

5

Można użyć Commons-lang StringUtils stripStart metody.

Po przekazaniu wartości null nastąpi automatyczne przycięcie spacji.

StringUtils.stripStart(temp, null); 
1

Prawdopodobnie blisko do realizacji proponowanych Gmin-lang StringUtils.stripStart() metoda:

public static String trimFront(String input) { 
    if (input == null) return input; 
    for (int i = 0; i < input.length(); i++) { 
     if (!Character.isWhitespace(input.charAt(i))) 
      return input.substring(i); 
    } 
    return ""; 
} 
0

rażąco kopiowane z java2s:

text = text.replaceAll("^\\s+", ""); 

... i modyfikować za pomocą @Reimus 's odpowiedź:

text = text.replaceFirst("^\\s+", ""); 

Nie jestem pewien najbardziej wydajnej metody; fwiw, poszedłem z oryginałem @Reimus.

Powiązane problemy