Jak sprawdzić jaka jest długość znaków wprowadzonych przez uzytkownika

Jak sprawdzić jaka jest długość znaków wprowadzonych przez uzytkownika

Wątek przeniesiony 2017-10-08 05:39 z Java przez bogdans.

I6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam. Mam problem (od razu zaznaczam, że jestem początkującym w tym języku, jak i ogólnie w programowaniu) z moją mini apką. Tzn - chcę w ramach utrwalenia sobie nowych informacji na temat danego zagadnienia w jezyku java stworzyć mini program, który pobiera od użytkownika kod PIN (ktory sam sobie ma ustalic), a pozniej dzieki temu, zeby mogl sie zalogowac do "swojego konta". Tylko problem w tym, że chcę dodać, że kod PIN ma mieć dokładnie 4 cyfry.

static void wprowadzenie() {
Scanner wprowadz = new Scanner(System.in);
int pin = wprowadz.nextInt();

    if (pin.length > 3 & pin.length < 5) {
        System.out.println("Twój kod PIN został pomyślnie przytwierdzony do Twojego konta.");
    } else {
        System.out.println("Twój kod PIN ma się składać z 4 cyfr.");
    }
}

chcialbym użyć takiego czegoś, ale niestety te length nie ma tutaj żadnego zastosowania. Pomożecie? Mam nadzieje, ze wiecie o co mi chodzi, pozdrowionka :)

  • Rejestracja: dni
  • Ostatnio: dni
0

Spróbuj

Kopiuj
pin.length()

zamiast

Kopiuj
pin.length
zyxist
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 101
0

Są dwa rozwiązania:

  1. sprawdzasz kolejne potęgi liczby 10, która z nich będzie większa od Twojej liczby. Na bazie wykładnika możesz określić liczbę cyfr w systemie dziesiętnym,
  2. konwertujesz pin do typu String. String jest obiektem, więc posiada metody i wśród nich jest length().

Drugi sposób jest prostszy w zapisie, ale jest robieniem trochę naokoło. W pierwszym musisz po prostu napisać niewielki algorytm, który będzie podnosił 10 do kolejnych potęg i sprawdzał warunek.

Natomiast co do pin.length - pin to zmienna typu int. To jest typ prymitywny, a typy prymitywne w Javie nie posiadają ani metod, ani atrybutów, więc taki zapis jest z założenia niepoprawny.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Dlaczego tak dziwnie zapisałeś warunek?

Kopiuj
if (pin.length > 3 & pin.length < 5)

Można prościej

Kopiuj
if (pin.length() == 4)

Wybrałeś też niewłaściwy typ dla zmiennej pin. Niech ma typ String i odczytuj ją metodą

Kopiuj
pin = wprowadz.next();
I6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Dzięki Panowie. Objasniliscie mega sytuację, wielkie dzięki ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.