Metoda split() ze znakiem |

0

Hej

Mam problem z rozdzieleniem stringa w którym występuje xnak "|":

		String zmiennaTekstowa2 = "ABC|DEF|GHT";
//		String zmiennaTekstowa3 = "ABC:DEF:GHT";
		String tablica[] = zmiennaTekstowa2.split("|");
		for(String temp : tablica)
		{
			System.out.println(temp);
		}

Zwraca mi to wynik:

A
B
C
|
D
E
F
|
G
H
T

Dopiero użycie takiej składni daje oczekiwany wynik:

String tablica[] = zmiennaTekstowa2.split("\\|");

Czemu tak się dzieje i nie rozdziela mi stringa kiedy podaję jako argument znak "|"?

3

String.split przyjmuje jako argument regexpa. A znak | ma akurat w regexp znaczenie (lub).
Trzeba go wyskejpować jako \n ale pechowo w Stringu javowym \ też ma specjalne znaczenie i trzeba wyeskejpować \ i dlatego na koniec wychodzi "\\|".

1 użytkowników online, w tym zalogowanych: 0, gości: 1