Skocz do zawartości
  • 0

Liczba jako argument


Peridot
 Udostępnij

Pytanie

Witam :) Mam 2 pytania, 1 Jak sprawdzić czy argument jest liczbą za pomocą if'a i 2 Jak ustawić int'a num właśnie na tą liczbę. A i proszę sprawdzić dział zanim coś napiszecie ;---; 

Za odpowiedź która mi pomoże daje repa a za najlepszą odpowiedź oczywiście naj ;)

 

Odnośnik do komentarza
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Użyj

StringUtils.isNumeric(arg);

Zwróci true jeśli jest numeryczny. Możesz też parsować String do Integera i przechwytywać wyjątek ale wpływa negatywnie na wydajność. A co do przypisania do inta to zrób

int num = Integer.parseInt(arg);

 

Edytowane przez Vexisu
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
10 minut temu, Vexisu napisał:

Użyj

StringUtils.isNumeric(arg);

Zwróci true jeśli jest numeryczny. Możesz też parsować String do Integera i przechwytywać wyjątek ale wpływa negatywnie na wydajność. A co do przypisania do inta to zrób

int num = Integer.parseInt(arg);

 

Twoje jest jeszcze bardziej bez sensu, bo nie masz pewności że dany string da się sparsować do inta.


Najwygodniej mieć coś takiego:


public static Integer parseOrNull(String str) {
    try {
        return Integer.parseInt(str);
    } 
    catch (NumberFormatException e) {
        return null;
    }
}

parsujesz tym i jak jest null to znaczy że to nie był poprawny int, proste, szybkie, wygodne.

A wydajność pewnie i tak nie jest problemem bo pewnie robisz to w komendzie, to fakt czy komenda wykona się 300ns wolniej nic nie zmieni :D

Integer value = parseOrNull(arg);
if (value == null) {
    return;
}
// i dalej możesz używać jak inta

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
10 minut temu, GotoFinal napisał:

Twoje jest jeszcze bardziej bez sensu, bo nie masz pewności że dany string da się sparsować do inta.


Najwygodniej mieć coś takiego:


public static Integer parseOrNull(String str) {
    try {
        return Integer.parseInt(str);
    } 
    catch (NumberFormatException e) {
        return null;
    }
}

parsujesz tym i jak jest null to znaczy że to nie był poprawny int, proste, szybkie, wygodne.

A wydajność pewnie i tak nie jest problemem bo pewnie robisz to w komendzie, to fakt czy komenda wykona się 300ns wolniej nic nie zmieni :D

Integer value = parseOrNull(arg);
if (value == null) {
    return;
}
// i dalej możesz używać jak inta

 

Racja, wtedy też sprawdzane jest, czy liczba mieści się w zakresie inta.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...