• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja equals nie czyta spacji

Mały hosting, OGROMNE możliwości
0 głosów
367 wizyt
pytanie zadane 27 sierpnia 2016 w Java przez Jonki Dyskutant (8,180 p.)

Jest jakiś sposób na umozliwienie funkcji 'equals' czytania spacji?

Chodzi o taki kod:

if(linia.equals("Rok urodzenia:"))
			{
				if(input.hasNextInt())
				{
					t_rok_urodzenia[licznik] = input.nextInt();
				}
			}

Warunek się nie wykona, bo pomiędzy "Rok" a "urodzenia" jest odstęp. Jest na to jakiś sposób?

1 odpowiedź

0 głosów
odpowiedź 27 sierpnia 2016 przez Porcupine Nałogowiec (31,560 p.)

1) To nie wina funkcji equal(), pokaż jak wczytujesz zmienną linia.

2) W Javie raczej powinno się pisać klamry tak:

void method() {
   // somthing
}

 

komentarz 27 sierpnia 2016 przez Jonki Dyskutant (8,180 p.)
while(input.hasNext())
		{
			linia = input.next();
			
			if(linia.equals("ID:"))
			{
				if(input.hasNextInt())
				{
					t_ID[licznik] = input.nextInt();
				}
			}
			if(linia.equals("Imię:"))
			{
					t_imie[licznik] = input.next();
			}
			if(linia.equals("Nazwisko:"))
			{
					t_nazwisko[licznik] = input.next();
			}
			if(linia.equals("Rok urodzenia:"))
			{
				if(input.hasNextInt())
				{
					t_rok_urodzenia[licznik] = input.nextInt();
				}
			}
			if(linia.equals("Płeć:"))
			{
				t_plec[licznik] = input.next();
			}
			if(linia.equals("PIN:"))
			{
				if(input.hasNextInt())
				{
					t_PIN[licznik] = input.nextInt();
					
					if(Integer.parseInt(PPIN) == t_PIN[licznik])
					{index = licznik; wyjscie = 1;}
				}
			}
			if(linia.equals("Hasło:"))
			{
				t_haslo[licznik] = input.next();
			}
			if(linia.equals("Pytanie pomocnicze:"))
			{
				t_pytanie_pomocnicze[licznik] = input.next();
			}
			if(linia.equals("Odpowiedz:"))
			{
				t_odpowiedz[licznik] = input.next();
				
				if(wyjscie == 1)
				{break;}
				
				licznik++;
			}					
		}

Czyli problem leży w 

while(input.hasNext())
		{
			linia = input.next();

Nie mogę zmienić na np. 

while(input.hasNextLine())
		{
			linia = input.nextLine();

bo wtedy sypie się cały program.

komentarz 27 sierpnia 2016 przez Porcupine Nałogowiec (31,560 p.)

A tak:

 

while (input.hasNext()) {
   linia = input.nextLine();


}

?

1
komentarz 27 sierpnia 2016 przez Porcupine Nałogowiec (31,560 p.)

Btw. w Javie możesz używać switch'a ze Stringami, tak:
 

http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

To skróci trochę kod Twojego programu.

Podobne pytania

+1 głos
2 odpowiedzi 560 wizyt
pytanie zadane 5 marca 2016 w Java przez Mar Cin Dyskutant (8,900 p.)
0 głosów
4 odpowiedzi 1,545 wizyt
pytanie zadane 23 listopada 2015 w Java przez Przemcio Użytkownik (900 p.)
0 głosów
2 odpowiedzi 567 wizyt
pytanie zadane 14 grudnia 2015 w C i C++ przez dichloroetylobenzen Użytkownik (850 p.)

93,715 zapytań

142,629 odpowiedzi

323,260 komentarzy

63,257 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...