2015届华为校园招聘机试题 java实现(2) 分类: java 面试题 2015-06-09 20:38 38人阅读 评论(0) 收藏
第二题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234
import java.util.Scanner; public class SpellingToNumber { public static void main(String []args){ System.out.println("请输入拼音"); @SuppressWarnings("resource") Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); int length = string.length(); int i=0; int begin=0; int end = 2; final String str1="yi"; final String str2 = "er"; final String str3 = "sa"; final String str4 = "si"; final String str5 = "wu"; final String str6 = "li"; final String str7 = "qi"; final String str8 ="ba"; final String str9 = "ji"; try{ for(i=0;i<length;i++){ String str = null; str = string.substring(begin,end); switch (str) { case str1:{ System.out.print(1); break; } case str2:{ System.out.print(2); break; } case str3:{ System.out.print(3); break; } case str4:{ System.out.print(4); break; } case str5:{ System.out.print(5); break; } case str6:{ System.out.print(6); break; } case str7:{ System.out.print(7); break; } case str8:{ System.out.print(8); break; } case str9:{ System.out.print(9); break; } default: break; } begin= begin+1; end = end+1; } } catch(Exception exception){ System.out.println("异常"); } } }这个程序一直想不出怎么兼容两位和三位数的算法,如果有好方法,请给点建议,而且程序始终有异常。等我有更好的办法再修改。
版权声明:本文为博主原创文章,未经博主允许不得转载。