Napisałem dwie metody. Jedna z nich miała sprawdzić czy dany łańcuch jest liczbą zmiennoprzecinkową w systemie dziesiętnym, a druga czy liczba jest całkowita w systemie szesnastkowym. Metody działają, ale mogłyby lepiej. Może ktoś miałby jakieś wskazówki?
public static boolean isNumber(String index) {
return index.matches("[-]?[.]?[0-9]{0,8}([.]|[eE][+-])?[0-9]{0,8}?[fFdD]?");
}
public static boolean isHexInteger(String index) {
return index.matches("[-]?[0][xX][0-9a-fA-F]{0,8}[Ll]?");
}
-.1.3
. Co ciekawe nie przyjmiesz9.9e9
. Użyłbym raczej[+-]?([0-9]+\.?|[0-9]*\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?