zoukankan      html  css  js  c++  java
  • 65. Valid Number

    一、题目

      1、审题

     

      2、分析

        判断所给字符串是否可以转化为小数类型。

    二、解答

      1、思路:

        多层判断,转化为小数类型,可以很巧妙的采用多个 flag 进行记录是否符合浮点数定义:

        ①、"+" 或 “-” 符号只能出现在开头或则 e 的后一个字符

        ②、e 前边得有数字、后边得有整形数字

        ③、只能出现一次小数点 "."

    public boolean isNumber(String s) {
    
            s = s.trim();
            boolean pointSeen = false;    // 出现了小数点
            boolean eSeen = false;        // 出现了 e
            boolean numberSeen = false;  // 出现了数字
            boolean numberAfterE = true;  // 数字出现在 e 后边
            
            for(int i = 0; i < s.length(); i++) {
                if('0' <= s.charAt(i) && s.charAt(i) <= '9') {
                    numberSeen = true;
                    numberAfterE = true;
                }
                else if(s.charAt(i)== '.' ) {
                    if(eSeen || pointSeen)
                        return false;
                    
                    pointSeen = true;
                }
                else if(s.charAt(i) == 'e') {
                    // e 前边得有数字
                    if(eSeen || !numberSeen)    
                        return false;
                    
                    numberAfterE = false;
                    eSeen = true;
                }
                else if(s.charAt(i) == '-' || s.charAt(i) == '+') {
                    if(i != 0 && s.charAt(i-1) != 'e') 
                        return false;
                }
                else {
                    return false;
                }
            }
            
            return numberSeen && numberAfterE;
        }
  • 相关阅读:
    尾递归
    博客搬家 --- CSDN
    sublime text 插件集锦
    chrome 常用插件集锦
    IntelliJ Idea 2017 免费激活方法
    Mac下Java JNI 调C
    webgl学习笔记五-纹理
    webgl学习笔记四-动画
    webgl学习笔记三-平移旋转缩放
    webgl学习笔记二-绘图多点
  • 原文地址:https://www.cnblogs.com/skillking/p/9685184.html
Copyright © 2011-2022 走看看