功能描述:已知:yi er san si wu liu qi ba jiu 分别对应123456789,
对一段只含有这几种字符串的字符串进行转换,如:输入:yiersansan 输出:1233
package 华为机试题;
/**
* @author Hutongling
*
* @time:2017年4月8日 下午4:51:48
*/
public class 字符串转换成数字 {
static String turnNumber(String data) {
if (data == null || data.length() == 0)
return null;
String template[] = { "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
String result = "";
for (int i = 0; i + 1 < data.length() && i < data.length();) {
if(data.charAt(i)=='y'){
result+=1;
i+=2;
}else if(data.charAt(i)=='e'){
result+=2;
i+=2;
}else if(data.charAt(i)=='w'){
result+=5;
i+=2;
}else if(data.charAt(i)=='l'){
result+=6;
i+=3;
}else if(data.charAt(i)=='q'){
result+=7;
i+=2;
}else if(data.charAt(i)=='b'){
result+=8;
i+=2;
}else if(data.charAt(i)=='j'){
result+=9;
i+=2;
}else if(data.charAt(i)=='s' && data.charAt(i+1)=='i'){
result+=4;
i+=2;
}else if(data.charAt(i)=='s' && data.charAt(i+1)=='a'){
result+=3;
i+=3;
}
}
return result;
}
public static void main(String[] args) {
String data="yiersansansiwuliuqibabababajiu";
System.out.println(turnNumber(data));
}
}
代码结果:
1233456788889