Wątek przeniesiony 2014-01-13 01:05 z Java przez bogdans.

Pierwsze kroki w javie - łańcuchy, sprawdzanie długości

0

Witajcie.
Jestem nowy na forum ale planuję być jego stałym bywalcem. Swoją przygodę z javą rozpocząłem kilka dni temu. Jestem w trakcie lektury "Java - postawy" wydanie IX wydawnictwa Helion. Obecnie dobrnąłem do łańcuchów i chciałem Was zapytać czy można w jakiś inny sposób niż ja to robię, zwrócić wartość true albo false w zależności czy łańcuch jest długości zerowej lub nie. Ja to robię w sposób następujący:

public class Lancuchy {
    public static void main(String[] args)
    {
        String greeting = "";
            if (greeting.length()==0)
            System.out.println(true);
        else
            System.out.println(false);
    
    }
}

Inicjuję zmienną "greeting" łańcuchem pustej długości. Następnie sprawdzam instrukcją if czy łańcuch jest pusty i jeśli warunek jest spełniony drukuję true, w przeciwnym wypadku drukuje false. Oczywiście to działa, drukuje się poprawnie tylko chodzi mi o to czy da się to wykonań przy pomocy jednego drukowania (jednego wywołania instrukcji System.out.println) czy też musi to być zrobione tak jak ja napisałem czyli jedno wywołania System.out.println w przypadku gdzy warunek spełniony i drugie wywołanie w przypadku gdy nie spełniony.

Z góry przepraszam za tak banalne dla Was pytanie i dziękuję za udzieloną pomoc.

0

Może tak:

System.out.println((greeting.length()==0));
0

Czyli rozumiem pomijam zupełnie instrukcję if. Ok, działa. Ale chcąc wykorzystać tego if-a rozumiem że muszę dać 2 wywołania System.out.println? :)

1

Wersja 1:

boolean czy_pusty = greeting.length() == 0;

System.out.println(czy_pusty);

Wersja 2:

boolean czy_pusty;

if (greeting.length() == 0) {
    czy_pusty = true;
} else {
    czy_pusty = false;
}

System.out.println(czy_pusty);

To już padło:

System.out.println(greeting.length() == 0);

Wszystkie wersje dają taki sam efekt.

0

Super, dzięki wielkie za te wersje. Faktycznie zapomniałem o boolean'ie a można go tu fajnie wykorzystać :). Pozdrawiam.

1
piotrz92 napisał(a):

Czyli rozumiem pomijam zupełnie instrukcję if. Ok, działa.

Koledzy jeszcze zapomnieli o tym, że można to porównanie == także pominąć.

String greeting = "";
System.out.println(greeting.isEmpty());

Ponieważ greeting jest obiektem klasy string masz dostęp do większej ilości metod (nie tylko do length, której użyłeś) - jedną z nich jest isEmpty sprawdzająca czy łańcuch jest pusty (zwraca wtedy true, jeśli nie jest pusty to zwraca false).

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