10.表示数值字符串
目录介绍
- 01.题目要求
- 02.问题分析
- 03.实例代码
01.题目要求
- 问题如下所示:
- 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
- 示例 :
例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值, 但“12e”,”1a3.14”,”1.2.3”,”+-5”及“12e+5.4”都不是。
02.问题分析
- 在数值之前可能有一个表示正负的’-‘或者’+’。接下来是若干个0到9的数位表示数值的整数部分(在某些小数里可能没有数值的整数部分)。如果数值是一个小数,那么在小数点后面可能会有若干个0到9的数位表示数值的小数部分。如果数值用科学计数法表示,接下来是一个’e’或者‘E’,以及紧跟着的一个整数(可以有正负号)表示指数。
- 判断一个字符串是否符合上述模式时,首先看第一个字符是不是正负号。如果是,在字符串上移动一个字符,继续扫描剩余的字符串中0到9的数位。如果是一个小数,则将遇到小数点。另外,如果是用科学计数法表示的数值,在整数或者小数的后面还有可能遇到’e’或者’E’。
03.实例代码
- 如下所示
public static void main(String[] args){ String str1 = "+100"; String str2 = "5e2"; String str3 = "3.1416"; String str4 = "-123"; String str5 = "12e"; String str6 = "1a3.14"; String str7 = "+-5"; String str8 = "1.2.3"; boolean numeric1 = isNumeric(str1); boolean numeric2 = isNumeric(str2); boolean numeric3 = isNumeric(str3); boolean numeric4 = isNumeric(str4); boolean numeric5 = isNumeric(str5); boolean numeric6 = isNumeric(str6); boolean numeric7 = isNumeric(str7); boolean numeric8 = isNumeric(str8); System.out.println("yc---1----" + numeric1); System.out.println("yc---2----" + numeric2); System.out.println("yc---3----" + numeric3); System.out.println("yc---4----" + numeric4); System.out.println("yc---5----" + numeric5); System.out.println("yc---6----" + numeric6); System.out.println("yc---7----" + numeric7); System.out.println("yc---8----" + numeric8); } //打印值 yc---1----true yc---2----true yc---3----true yc---4----true yc---5----false yc---6----false yc---7----false yc---8----false