牛客网 | 表示数值的字符串

来源:互联网 发布:前端数据渲染 编辑:程序博客网 时间:2024/06/05 09:48

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


做的很无语。。。毫无数据结构和算法而言

public class Solution {    public static boolean isNumeric(char[] str) {        int i=0;        if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))        {            i++;            while(i<str.length)            {                if(IsNum(str[i])) i++;                else    break;            }            if(i==str.length)  return true;            else if(str[i]=='.')            {                if(++i==str.length)   return true;                else if(IsNum(str[i]))                {                    i++;                    while(i<str.length)                    {                        if(IsNum(str[i])) i++;                        else    break;                    }                    if(i==str.length)   return true;                    else if(str[i]=='e'||str[i]=='E')                    {                        i++;                        if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))                        {                            i++;                            while(i<str.length)                            {                                if(IsNum(str[i])) i++;                                else    break;                            }                            if(i==str.length)   return true;                            else return false;                        }                        else return false;                    }                    else    return false;                }                else return false;            }            else if(str[i]=='e'||str[i]=='E')            {                if(++i==str.length)   return false;                else if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))                {                    i++;                    while(i<str.length)                    {                        if(IsNum(str[i])) i++;                        else    break;                    }                    if(i==str.length)   return true;                    else return false;                }                else return false;            }            else return false;        }        else        {            return false;        }    }    public static boolean IsNum(char ch)    {        if(ch<'0'||ch>'9') return false;        else return true;    }}


0 0
原创粉丝点击