【剑指Offer】54、表示数值的字符串
2020-03-31 19:41
676 查看
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
题解一:库函数
1 /** 2 *parseDouble()与valueOf()均可 3 */ 4 public static boolean isNumeric(char[] str) { 5 try { 6 double re = Double.parseDouble(new String(str)); 7 double re1 = Double.valueOf(new String(str)); 8 } catch (NumberFormatException e) { 9 return false; 10 } 11 return true; 12 }
题解二:正则表达式
1 //正则表达式 2 public static boolean isNumeric01(char[] str) { 3 String res = String.valueOf(str); 4 return res.matches("[+-]?[0-9]{0,}(\\.?[0-9]{1,})?([Ee][+-]?[0-9]{1,})?"); 5 }
测试:
1 public static void main(String[] args) { 2 Scanner scanner = new Scanner(System.in); 3 while (scanner.hasNext()){ 4 String str = scanner.nextLine(); 5 char[] chars = str.toCharArray(); 6 boolean numeric = isNumeric(chars); 7 System.out.println(numeric); 8 } 9 输出: 10 /**+100 11 true 12 "5e2" 13 false 14 5e2 15 true 16 -123 17 true 18 1a3.14 19 false 20 12e+4.3 21 false*/
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 剑指Offer面试题54:表示数值的字符串
- 剑指offer54 表示数值的字符串
- 剑指offer-面试题54-表示数值的字符串
- 剑指offer-面试题54:表示数值的字符串
- 【剑指Offer】面试题54:表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 【剑指Offer学习】【面试题54:表示数值的字符串】
- 剑指offer——面试题54:表示数值的字符串
- 剑指offer--面试题54:表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer--53.表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指offer——表示数值的字符串(好题)(了解下库函数和正则)
- 2.1 剑指offer 表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer(50)-表示数值的字符串
- 剑指Offer--054-表示数值的字符串
- 剑指offer(56):表示数值的字符串
- 【剑指offer-解题系列(53)】表示数值的字符串
- (C++)剑指offer-53:表示数值的字符串(字符串)