博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表示数值的字符串(Java实现)
阅读量:5137 次
发布时间:2019-06-13

本文共 2123 字,大约阅读时间需要 7 分钟。

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

 

1 public class Demo2 {   2  3     // 数组下标成员变量   4     int index;   5    6     public boolean isNumeric_2(char[] str) {   7         // 输入异常   8         if (str == null)   9             return false;  10         index = 0;  11         // 正负号开头  12         if (str[index] == '+' || str[index] == '-')  13             index++;  14         if (index == str.length)  15             return false;  16         // 设置numeric判断是否为数字  17         boolean numeric = true;  18         scanDigits(str);  19         if (index != str.length) {  20             // 小数  21             if (str[index] == '.') {  22                 index++;  23                 scanDigits(str);  24                 if (index < str.length && (str[index] == 'e' || str[index] == 'E'))  25                     numeric = isExponential(str);  26             } else if (str[index] == 'e' || str[index] == 'E')  27                 numeric = isExponential(str);  28             else  29                 // 出现了异常字符  30                 numeric = false;  31         }  32   33         return numeric && index == str.length;  34     }  35   36     // 扫描数组,如果当前字符为数字,index++  37     private void scanDigits(char[] str) {  38         while (index < str.length && str[index] >= '0' && str[index] <= '9')  39             index++;  40     }  41   42     // 判断是否为科学计数法表示的数值的结尾部分  43     private boolean isExponential(char[] str) {  44         if (str[index] != 'e' && str[index] != 'E')  45             return false;  46         index++;  47         if (index == str.length)  48             return false;  49         if (str[index] == '+' || str[index] == '-')  50             index++;  51         if (index == str.length)  52             return false;  53         scanDigits(str);  54         // 如果存在特殊字符,index不会为str.length  55         return index == str.length ? true : false;  56     }  57 }

转载自:http://blog.csdn.net/zjkc050818/article/details/72818475

posted on
2017-06-06 21:58 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/2390624885a/p/6953883.html

你可能感兴趣的文章
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
nginx 不带www到www域名的重定向
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
OD使用教程20 - 调试篇20
查看>>
Java虚拟机(JVM)默认字符集详解
查看>>
Java Servlet 过滤器与 springmvc 拦截器的区别?
查看>>
(tmp >> 8) & 0xff;
查看>>
linux命令之ifconfig详细解释
查看>>
NAT地址转换
查看>>
Nhibernate 过长的字符串报错 dehydration property
查看>>
Deque - leetcode 【双端队列】
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
企业级应用与互联网应用的区别
查看>>