zoukankan      html  css  js  c++  java
  • Valid Number

     1 public class Solution {
     2     public boolean isNumber(String s) {
     3         // IMPORTANT: Please reset any member data you declared, as
     4         // the same Solution instance will be reused for each test case.
     5         if(s==null)
     6         return false;
     7     char[] sArr = s.trim().toCharArray();
     8 
     9     if(sArr.length==0)
    10         return false;
    11     if(sArr.length==1&&!Character.isDigit(sArr[0]))
    12         return false;
    13 
    14     boolean decimalFound = false;
    15     boolean eFound = false;
    16     int end = sArr.length-1;
    17     for(int i=0;i<=end;i++){        
    18         char nextChar = i>=end?'x':sArr[i+1];
    19         char prevChar = i<=0?'x':sArr[i-1];
    20         switch(sArr[i]){
    21         case '+':
    22         case '-':
    23             if(prevChar!='e'&&i!=0)
    24                 return false;
    25             if(prevChar=='e'&&i==end)
    26                 return false;
    27             if (i==0&&nextChar=='e')
    28                 return false;
    29             break;
    30         case '.':
    31             if(decimalFound || eFound)
    32                 return false;
    33             if(i>=end && i<=0)
    34                 return false;
    35             if(!Character.isDigit(prevChar) && !Character.isDigit(nextChar))
    36                 return false;
    37             decimalFound = true;
    38             break;
    39         case 'e':
    40             if(eFound)
    41                 return false;
    42             if(!Character.isDigit(prevChar) && !Character.isDigit(nextChar)
    43                 &&nextChar!='-'|| end==i || i==0){
    44                         return false;                        
    45             }
    46             eFound = true;
    47             break;
    48         case ' ':
    49             return false;
    50         default:
    51             if(!Character.isDigit(sArr[i]))
    52                 return false;
    53         }
    54 
    55     }
    56     return true;
    57     }
    58 }
  • 相关阅读:
    一份面试题+整理的答案
    java获取本机IPV4地址,非127.0.0.1
    List去重
    禁止iframe页面时产生历史记录
    js打开新窗口并且不被拦截
    ifream 跨域实现高度自适应
    css版tooltip
    jQuery遮罩插件 jQuery.blockUI.js
    SpringMVC 传递相同名称的参数
    SpringMVC接收List型参数
  • 原文地址:https://www.cnblogs.com/jasonC/p/3433887.html
Copyright © 2011-2022 走看看