Valid Number
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class Solution { // don't forget 'break' 'if(s.length()<=0) return false;' should be after trim 2 public boolean isNumber(String s) { 3 s = s.trim(); 4 if(s.length()<=0) return false; 5 boolean eFound = false; 6 boolean dFound = false; 7 int end = s.length()-1; 8 for(int i=0;i<=end;i++){ 9 char pre = i==0?'x':s.charAt(i-1); 10 char next = i==end?'x':s.charAt(i+1); 11 char c = s.charAt(i); 12 switch(c){ 13 case '+': 14 case '-': 15 if(i==end) return false; 16 if(next=='e') return false; 17 if(i!=0 && pre!='e') return false; 18 break; 19 case '.': 20 if(eFound||dFound) return false; 21 if(!Character.isDigit(pre) && !Character.isDigit(next)) return false; 22 dFound = true; 23 break; 24 case 'e': 25 if(eFound) return false; 26 if(i==0 || i==end) return false; 27 if(!Character.isDigit(pre) && pre!='.') return false; 28 eFound = true; 29 break; 30 case ' ': return false; 31 default: if(!Character.isDigit(c))return false; 32 } 33 } 34 return true; 35 } 36 }