應該不難吧﹐"天"和"班"是一樣的﹐split成几個ArrayList或String[]等皆可用
天換成"/","班"殺掉然后進行數字識別
這一個相對復雜一點﹐但其實也不難﹐如十﹐后面如果沒有字了﹐那么變0
如果還有則加字建立對應表是最重要的一個啦﹐我現在沒時間來寫一下
你試啦﹐﹕-)
呵呵有空我寫一下給你
天換成"/","班"殺掉然后進行數字識別
這一個相對復雜一點﹐但其實也不難﹐如十﹐后面如果沒有字了﹐那么變0
如果還有則加字建立對應表是最重要的一個啦﹐我現在沒時間來寫一下
你試啦﹐﹕-)
呵呵有空我寫一下給你
但是还不完整,不能处理“十”
你可以判断是否存在“十”//如果有时间我给你写这个部分
因为你的班和天里可能都出现“十”
也可能只出现一次,(可能在班里也可能在天里)
也可能不出现;
处理“十”比较麻烦的,我没写/
一会有时间写一下是个简单的处理//
<%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();
}
%>
加上那样你再写个方法进行如下处理
格式可能如下:
找到 “/”的位置,把整个字符串分成两部分。
然后对没一部分判断什么时候该出现“1”什么时候出现“0”
我没有想出简单的方法!
Sorry!
------------
可能用的方法:
str.substring(begin,end)
str.charAt(i);看看其他高人的建议吧!!