可以利用正则表达式来“-?[0-9]+(\\.[0-9]+)?
”来做判断字符串是否为数字。
如果传入的数据有很多位,那么使用double会导致精度丢失,这个时候就要用BigDecimal来进行转换。
实例:
public class CheckStrIsNum { public static void main(String[] args) { double aa = -192322.1212; String a = "-192322.1212"; String b = "-192322a1212"; String c = "Java"; String d = "5"; /** 判断是否全为数字 */ System.out.println(checkStrIsNum02(Double.toString(aa))); System.out.println(checkStrIsNum02(a)); System.out.println(checkStrIsNum02(b)); System.out.println(checkStrIsNum02(c)); System.out.println(checkStrIsNum02(d)); } private static Pattern NUMBER_PATTERN = Pattern.compile("-?[0-9]+(\\.[0-9]+)?"); /** * 利用正则表达式来判断字符串是否为数字 */ public static boolean checkStrIsNum02(String str) { String bigStr; try { /** 先将str转成BigDecimal,然后在转成String */ bigStr = new BigDecimal(str).toString(); } catch (Exception e) { /** 如果转换数字失败,说明该str并非全部为数字 */ return false; } Matcher isNum = NUMBER_PATTERN.matcher(str); if (!isNum.matches()) { return false; } return true; } }
推荐教程:java开发入门
Das obige ist der detaillierte Inhalt vonJava verwendet reguläre Ausdrücke, um zu bestimmen, ob es sich bei den eingehenden Daten um eine Zahl handelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!