一直对这种题比较没把握. 没有思路.
i
1,000,000.22
34,333.999
define valid(String s,boolean last,boolean first)
1.先s.trim();
if string==null or string.length==0 return false;
2.String[] t = s.spite(',');
得到几组数.
if(t.length()==1) valid(t[0],t,t)
else for()
关于splite 函数 1,, 最后 s.length = 1 . 只有1留下了.
需要考虑,, 情况!
最关键的是把所有情况先 写下来。按照图上的划分。考官也会十分清晰.
import java.util.ArrayList;import java.util.List;public class test { /** * @param args */ public static Boolean isNum(String s){ if(s == null || s.length()==0) return false; s = s.trim(); //check the ,, situation String[] t = s.split(","); int comcount = 0; for(int i=0;i0 && (s.charAt(0)=='-' || s.charAt(0)=='+')) s = s.substring(1); char[] arr = s.toCharArray(); if(arr.length==0) return false; int indexDot = s.indexOf("."); if(indexDot ==-1){ //23 333 if(s.length()>3) return false; }else{ if(indexDot>3) return false; for(int i=0;i 3){ if(s.charAt(3)!='.') return false; for(int i=4;i