出现判断某个字符串是否能转换能数字的需求时,应该如何处理?
一 拍脑袋方案:String转Integer异常判断
package test.stringutils; import org.apache.commons.lang3.StringUtils; public class StringUtilsDemo { public static void main(String[] args) { String str1 = "123"; String str2 = "hello world"; System.out.println(isNumber(str1)); System.out.println(isNumber(str2)); } public static boolean isNumber(String string) { try { Integer.parseInt(string); return true; } catch (Exception e) { return false; } } }
输出结果:
true false
虽然能实现,但通过异常判断进行处理,有点太暴力。
二 使用StringUtils的方法isNumeric(org.apache.commons.lang3.StringUtils)
package test.stringutils; import org.apache.commons.lang3.StringUtils; public class StringUtilsDemo { public static void main(String[] args) { String str1 = "123"; String str2 = "hello world"; System.out.println(StringUtils.isNumeric(str1)); System.out.println(StringUtils.isNumeric(str2)); } }
输出结果:
true false
这个方案比较优雅,尤其是一些工具类,有现成的轮子就用现成的,没必要重复造轮子。