應該不難吧﹐"天"和"班"是一樣的﹐split成几個ArrayList或String[]等皆可用
天換成"/","班"殺掉然后進行數字識別
這一個相對復雜一點﹐但其實也不難﹐如十﹐后面如果沒有字了﹐那么變0
如果還有則加字建立對應表是最重要的一個啦﹐我現在沒時間來寫一下
你試啦﹐﹕-)
呵呵有空我寫一下給你

解决方案 »

  1.   

    给你简单写了一个。
    但是还不完整,不能处理“十”
    你可以判断是否存在“十”//如果有时间我给你写这个部分
    因为你的班和天里可能都出现“十” 
    也可能只出现一次,(可能在班里也可能在天里)
    也可能不出现;
    处理“十”比较麻烦的,我没写/
    一会有时间写一下是个简单的处理//
    <%String str="三天一班";
    String str1="1sdfsddf";
    out.println(ToNumber(str));
    %>
    <%! 
    String[] source = {"一","二","三","四","五","六","七","八","九"};
    String[] old = {"1","2","3","4","5","6","7","8","9"};
    public String ToNumber(String s){ 
    for (int i = 0;i < source.length;i++){
     s = Replace(s,source[i],old[i]); 
    }
    s = Replace(s,"天","/"); 
    s = Replace(s,"班","");
    return s; 

    //Replace 
    public static String Replace(String source,String oldString,String newString) { 
    if(source == null) return null; 
    StringBuffer output = new StringBuffer(); 
    int lengOfsource = source.length(); 
    int lengOfold = oldString.length(); 
    int posStart = 0; 
    int pos; 
    while((pos = source.indexOf(oldString,posStart)) >= 0) { 
    output.append(source.substring(posStart,pos)); 
    output.append(newString); 
    posStart = pos + lengOfold; 

    if(posStart < lengOfsource) { 
    output.append(source.substring(posStart)); 

    return output.toString(); 

    %>
      

  2.   

    上面的两个数组里面可以把"十","10"
    加上那样你再写个方法进行如下处理
    格式可能如下:
    找到 “/”的位置,把整个字符串分成两部分。
    然后对没一部分判断什么时候该出现“1”什么时候出现“0”
    我没有想出简单的方法!
    Sorry!
    ------------
    可能用的方法:
    str.substring(begin,end)
    str.charAt(i);看看其他高人的建议吧!!