首页 > 代码库 > valid bank money number
valid bank money number
一直对这种题比较没把握. 没有思路.
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;i<t.length;i++){ if(s.charAt(i)==‘,‘) comcount++; } if(t.length!=comcount+1) return false; if(t.length==1) return Valid(t[0], true, true); else { for(int i=0; i< t.length;i++){ if(i==0){ if(!Valid(t[i], true, true)) return false; } else if(i==(t.length-1)){ if(!Valid(t[i],false,true)) return false; }else{ if(!Valid(t[i],false,false)) return false; } } } return true; }// //effective fractional 100.222222// public static boolean Valid2(String s){// if(s.length() == 0)// return false;// }// public static Boolean Valid(String s, boolean f, boolean l){ if(f){ //+10234 -00234 if(s.length()>0 && (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<indexDot;i++){ if(!check(s.charAt(i))) return false; } if(indexDot==s.length()-1) return false; for(int i=indexDot+1;i<s.length();i++){ if(!check(s.charAt(i))) return false; } } return true; } if(l){ if(s.length()<3) return false; for(int i=0;i<3;i++) { if(!check(s.charAt(i))) return false; } if(s.length()>3){ if(s.charAt(3)!=‘.‘) return false; for(int i=4;i<s.length();i++){ if(!check(s.charAt(i))) return false; } } return true; } // middle if(s.length()!=3) return false; char[] arr = s.toCharArray(); for(int i=0;i<arr.length;i++){ if(!check(arr[i])) return false; } return true; } static boolean check(char c){ return (‘0‘ <= c && c <= ‘9‘); } public static void main(String[] args) { String[]t = {",,","100,002",",000.3", "+34444","9999.234324","234234", "+56.234234","1,000,000,030.21231","-0.3242", ".+99","1111.6",",999.3" ,"+1,000,987.23444444444" }; for(String c:t) System.out.println(isNum(c)); }}
valid bank money number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。