表示数值的字符串(Java实现)

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+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

时间: 2024-11-06 07:21:44

表示数值的字符串(Java实现)的相关文章

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

表示数值的字符串-剑指Offer

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

VBA学习---字符串型数值和数值型字符串相互转换

一.数值转化为字符串函数Str.CStr Str函数将数值转换为字符串,即返回一个代表一个数值的字符串,其语法为: Str(number) CStr函数将数值表达式转换为字符串,其语法为: CStr(mynumberExpression)     注意:当一个数值转换成字符串时,总会在其前面保留一个空位来表示正负,即字符串的第一位一定是空格或正负号,Str将英文句号(.)作为有效的小数点.          演示代码: Sub StrTranfomationDemo() Dim myDouble

剑指offer之【表示数值的字符串】

题目: 表示数值的字符串 链接: https://www.nowcoder.com/practice/6f8c901d091949a5837e24bb82a731f2?tpId=13&tqId=11206&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100",&quo

04_Python的数据类型1数值和字符串_Python编程之路

上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的交互器,之后讲解代码(除了做简单项目)都在交互器上进行,这样可能比较直接一些,有利于刚接触python的人理解代码 python在命令行自带一个交互器,我们可以直接通过输入python进入python的交互器 但是他的功能并不是很齐全,比如代码着色,和变量的提示,以及操作shell命令的功能都没有

请编写程序,统计键盘录入的字符串中出现了几次字符串”java”,并测试

import java.util.Scanner;public class StringBufferText {//main方法public static void main(String[] args) {br/>@SuppressWarnings("resource")//键盘录入Scanner sc=new Scanner(System.in);//字符串数据的导入System.out.println("请您输入一个字符串:");String str=s

基于opencv将视频转化为字符串Java版

基于opencv将视频转化为字符串Java版 opencv java 先上一个效果图吧 首先,弄清一下原理 我们要将视频转化为字符画,那么就需要获取画面的每一帧,也就是每一张图片,然后将图片进行转化,变成字符串,然后进行打印. 1.获取视频 在opencv中提供了一个函数去获取视频 VideoCapture capture = new VideoCapture("");//里面放图片的地址 //ps:如果里面为0[不要"",就是整数0],则就对默认摄像头进行抓取 M

剑指offer:表示数值的字符串

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

第四章 数值和字符串类型

@数值和字符串 python的数据类型体现在数据上,数据是什么类型,他就是什么类型. 数值 数值分为整数(int),浮点数(float)以及decimal和fraction 变量引用: 表达式,有加减乘除. 可以用占位符传递数据:(浮点型显示并保留两位小数) 用于比较: 在数值中,我们有一个内置的math函数可以直接导入引用. math.floor() 在横坐标中往左移: math.ceil() 在横坐标中往右移 math.trunc() 在横左边中往0移 round()四舍五入法. 数值可以转