Jak czytać Stringa w Javie

KUOPA
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 16 lut 2010, o 20:49
Płeć: Kobieta
Lokalizacja: strefa 51
Podziękował: 2 razy

Jak czytać Stringa w Javie

Post autor: KUOPA »

Już próbowałem 15 kombinacji jak czytać stringa w javie znak po znaku mam coś takiego.
Jak przeczytać dowolny znak ze Stringa?
String kawa = "lawa";
if (lawa[0]=="l") coś tam
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

Jak czytać Stringa w Javie

Post autor: smiechowiec »

W java do kolejnych znaków odwołujemy się za pomocą metody substring kalsy String (java.lang.String)

String substring(int beginIndex, int endIndex)
Returns a new string that is a substring of this string.

beginIndex - numerujemy od zero
endIndex - numer znaku ograniczającego
przykładowo
substring(0, 1) oznacza pierwszy znak
substring(1, 2) oznacza drugi znak

W związku z tym w Twoim przykładzie
if (lawa.substring(0, 1).equals("l") ) coś tam

Metoda equals("l") (czy równe) porównuje ciąg znaków z ciągiem podanym jako parametr i jeżeli są równe zwraca true.

Zapisu lawa[0] == "l" w java raczej się nie zaleca, gdyż nazwy zmiennych obiektów (tu typu String) traktowane są jako wskaźniki, więc wynik zazwyczaj będzie negatywny, a Tobie chodzi o porównanie jedynie wartości.
pfauel
Użytkownik
Użytkownik
Posty: 32
Rejestracja: 26 lis 2009, o 01:15
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 9 razy

Jak czytać Stringa w Javie

Post autor: pfauel »

to chyba nie do końca tak, jak pisze smiechowiec.
Metody substring nie stosuje się do czytania pojedyńczych znaków, tylko jak sama nazwa wskazuje do czytania "podsłów".
metoda, której szukasz to charAt (tak mi się wydaję że tego szukasz :) )
public char charAt(int index)

odnosząc się do Twojego "przykładu" :) będzie to wyglądać mniejwięcej tak:
String kawa = "lawa";
if (kawa.charAt(0) =='l') coś tam

(i oczywiście w warunku if nie lawa, tylko kawa, bo tak się nazywa nasz obiekt - ale to pewnie przez niedopatrzenie tak napisałeś)

i jeszcze jedno, co może stwarzać problemy. Metoda charAt() zwraca typ char, więc w warunku if musisz też porównywać z typem char. Jeżeli napiszesz "l" to zostanie to potraktowane jako String i porównanie kawa.charAt(0) z "l" nie będzie możliwe. Dlatego musisz zamiast cudzysłowów użyć apostrofów - tak się zapisauje typ char w Javie i wtedy możesz normalnie ze sobą te dwie rzeczy porównywać.

więcej informacji odnośnie tej metody znajdziesz w dokumentacji:
Awatar użytkownika
nuclear
Użytkownik
Użytkownik
Posty: 1501
Rejestracja: 22 paź 2006, o 12:01
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 16 razy
Pomógł: 264 razy

Jak czytać Stringa w Javie

Post autor: nuclear »

ja osobiście użyłbym metody

Kod: Zaznacz cały

 toCharArray()

która zamienia string na tablice składającą się z charów.
i następnie ten warunek zapisałbym

Kod: Zaznacz cały

char[] tablica;
tablica=kawa.toCharArray();
if(tablica[0]='l'){
ODPOWIEDZ