zoukankan      html  css  js  c++  java
  • 表示数值的字符串

    题目描述

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

    代码

    class Solution {
    public:
        bool isNumeric(char* string)
        {
            if (!string[0]) {
                return false;
            }
            int i = 0;
            if (string[i] == '-' || string[i] == '+') {//符号位
                ++i;
            }
            //e前面的数字
            int e1 = i;//数字起始位置
            int e2 = -1;//小数点的位置
            while (string[i]) {
                if (string[i] == 'E' || string[i] == 'e') {
                    break;
                }
                if (string[i] == '.') {
                    if (e2 != -1) {//多个小数点或者第一个就是小数点
                        return false;
                    }
                    e2 = i;
                } else if (string[i] < '0' || string[i] > '9') {
                    return false;
                }
                ++i;
            }
            
            if (string[i]) {//存在指数部分
                if (i > e1) {//e前面有数字
                    ++i;
                    if (string[i]) {
                        //看e后面是否合格
                        if (string[i] == '-' || string[i] == '+') {//符号位
                            ++i;
                        }
                        while (string[i]) {
                            if (string[i] < '0' || string[i] > '9') {
                                return false;
                            }
                            ++i;
                        }
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
            } 
            return true;
        }
    
    };
    
  • 相关阅读:
    字符串比较
    LOOP AT SCREEN
    Trunc的日期用法
    【ABAP】SELECT-ENDSELECT尽量不要用
    【转】Abap For all entries in 使用
    01如何创建sequence:
    abap --MOVE-CORRESPONDING
    Abap 常用变量
    StringBuffer的用法
    Spring事务的传播方式
  • 原文地址:https://www.cnblogs.com/jecyhw/p/6601594.html
Copyright © 2011-2022 走看看