I have a string, and I know that it only contains a number.
How can I check if this number is int or float?
Advertisement
Answer
There are many ways to solve your problem. For example, you can use try{}catch(){}
:
Solution 1
public static void main(String[] args) { String str = "5588"; // Check if int try { Integer.parseInt(str); } catch(NumberFormatException e) { // Not int } // Check if float try { Float.parseFloat(str); } catch(NumberFormatException e) { // Not float } }
Solution 2
Or you can use regex [-+]?[0-9]*.?[0-9]+
:
boolean correct = str.matches("[-+]?[0-9]*\.?[0-9]+");
For more details, take a look at Matching Floating Point Numbers with a Regular Expression.