zoukankan      html  css  js  c++  java
  • 剑指Offer(Java版)第五十九题:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    /*
    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
    例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。
    但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
    */
    //一开始不知道这是什么意思,后来查了资料才知道是找规律的问题:
    //逐个字符进行判断,e或E、小数点或符号最多出现一次,而e或E的前一个必须是数字,且不能是第一个或最后一个字符,符号的前一个字符不能是e或E。
    public class Class59 {

    public boolean isNumeric(char[] str) {
    if(str == null || str.length <= 0){
    return false;
    }
    int symbol = 0; //'+'和'-'
    int eOrE = 0; //'e'和'E'
    int point = 0; //'.'
    if(str[0] == '-' || str[0] == '+'){
    symbol++;
    }
    for(int i = symbol; i < str.length; i++){
    if(str[i] == '-' || str[i] == '+'){
    if(str[i - 1] != 'e' && str[i - 1] != 'E'){
    return false;
    }
    continue;
    }
    if(str[i] == 'e' || str[i] == 'E'){
    eOrE++;
    if(eOrE > 1){
    return false;
    }
    if(i == 0 || str[i - 1] < 48 || str[i - 1] > 57 || i == str.length){
    return false;
    }
    point++;
    continue;
    }
    if(str[i] == '.'){
    point++; //除了数字、符号和'e'以及'E'之外,只剩下'.'了。
    if(point > 1){
    return false;
    }
    continue;
    }
    if((str[i] < 48 || str[i] > 57) && (str[i] != 'e') && (str[i] != 'E')){
    return false;
    }
    if(str[str.length - 1] == 'e' || str[str.length - 1] == 'E'){
    return false;
    }
    }
    return true;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    }

    }

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12546857.html
Copyright © 2011-2022 走看看