Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Eclipse - Sprawdzenie czy argument jest liczbą.


Rekomendowane odpowiedzi

Opublikowano


public boolean check(String string){

try{

Integer.parseInt(string);

return true;

}

catch(NumberFormatException e){

return false;

}

}

 

Opublikowano


public boolean check(String string){

try{

Integer.parseInt(string);

return true;

}

catch(NumberFormatException e){

return false;

}

}

 

 

if(check(args[0])){

player.sendMessage("Argument 0 jest liczba");

}

else player.sendMessage("Argument 0 nie jest liczba");

 

Opublikowano
public boolean check(String string){
    try{
        Integer.parseInt(string);
        return true;
    }
    catch(NumberFormatException e){
        return false;
    }
}


if(check(args[0])){
    player.sendMessage("Argument 0 jest liczba");
}
else player.sendMessage("Argument 0 nie jest liczba");

Tylko taka metode nie ma sensu, bo potem jak chcesz tej liczby użyć, musisz ZNOWU użyć Integer.parseInt(string);

A to nie jest zbyt optymalne...

 

Polecam zrobić tak:

public Integer toInt(String string){
    try{
        return Integer.parseInt(string);
    }
    catch(NumberFormatException e){
        return null;
    }
} 

i wtedy

Integer i = toInt(args[0]);
if (i == null)
{
    sender.sendMessage("Musisz podać liczbę, a nie "+args[0]);
    return true;
}
sender.sendMessage("Uleczono cię o "+ i + "HP.");
sender.setHelath(i); // mozna już uzywać jako zwykłej cyfry

­

1438614356923701010629.png

 

Opublikowano

 

Guava:

StringUtils.isNumeric(String);

PS: to nie guava, to apache commons.

ale to dalej nie ma sensu, autor chce sprawdzić czy argument jest liczbą, czyli pewnie go potem użyć jako liczby.

Więc nie ma sensu sprawdzać a potem zmieniać, bo podczas zmieniania znowu jest sprawdzanie czy się da.

 

A do tego... ta funkcja nie zagwarantuje że owa zmiana się uda.

(funkcja skopiowana z biblioteki)

http://ideone.com/Ibq9tJ

 

Jak widać nie daje sobie nawet rady z -10

+ zbyt duża liczba zwraca prawdę, a że wykracza po za inta... to jest lipa.

 

Dlatego najlepsze wyjście to jednak to co pisałem wyżej, przykład:

http://ideone.com/1WXq6V

 

­

1438614356923701010629.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...