Twój problem jest taki, że zawsze sprawdzisz tylko pierwszy znak tekstu, dlatego że wszędzie masz returny, co jednoznacznie kończy funkcje i zwraca wynik. Poniżej moje rozwiązanie (troche to przebudowałe, ale powinieneś wyczaić o co chodzi)
public class Helper {
static public boolean isNumber(String number) {
for (int i = 0; i < number.length(); i++) {
if (Character.isDigit(number.charAt(i)) != true) {
return false;
}
}
return true;
}
public static void main(String[] args)
{
boolean isNumber = Helper.isNumber("5a55");
if (isNumber) {
System.out.println("To jest cyfra");
} else {
System.out.println("To nie jest cyfra");
}
}
}
Jak bym miał na szybko przebudować Twoje rozwiązanie to zrobił bym to tak:
public boolean czyIloscKmToLiczba() {
String iloscKmWStringu = tilosckm.getText();
String dlugoscWyrazenia = iloscKmWStringu.length();
for (int i = 0; i < dlugoscWyrazenia; i++) {
if (Character.isDigit(iloscKmWStringu.charAt(i)) != true) {
return false;
}
}
return true;
}
Podsumowując - return zawsze kończy działanie funkcji, więc w moim przykładzie sprawdzasz dla każdej litery czy jest czymś innym od cyfry - jeżeli jest to od razu zwracasz false, jeżeli nie znajdzie żadnego innego znaku niż cyfra, wtedy poza pętlą for zwracasz true.