• 华为机试_字符串识别_Vector的使用;


    第一题:拼音转数字
    输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
    描述:      拼音        yi  er  san  si  wu  liu  qi  ba  jiu
          阿拉伯数字        1   2   3      4   5    6    7   8   9
    输入字符只包含小写字母,所有字符都可以正好匹配

    运行时间限制:无限制
    内存限制:       无限制
    输入:              一行字符串,长度小于1000
    输出:              一行字符(数字)串
    样例输入:       yiersansi
    样例输出:       1234

    总结几个用法:

    1、区别char、String、Vector<>str; 字符‘’ 字符串“” 向量<>中是向量存的数据类型(动态存储)

    2、最后打印的内容只能是char、String格式的,所以return的时候加上这句str.toString()表示将向量转换成String型;还有str.toArray转换成数组;

    package t0806;
    
    import java.util.Vector;
    
    public class test2 {
        public static void main(String[] args){
            String str = "yiersansi";
            String str2 = solve(str);
            System.out.println("样本输出为:"+str2);
            
        }
        public static String solve(String str2){
            Vector<String> str3=new Vector<String>();  //new一个空的字符串型的向量
          char ch[]=str2.toCharArray();    //将字符串转换成字符数组
            int length=str2.length();  
            int k=0;
            while(true){                          // 习惯使用这种while。break放在内部,而不是放在括号里面,除非你非常清楚它的运行机制
                if (ch[k]=='y'&&ch[k+1]=='i')
                    {str3.addElement("1");k=k+2;}
                else if(ch[k]=='e'&&ch[k+1]=='r')
                    {str3.addElement("2");k=k+2;}
                else if(ch[k]=='s')
                {
                    if (ch[k+1]=='a'&&ch[k+2]=='n')
                            {str3.addElement("3");k=k+3;}
                    else if(ch[k+1]=='i')
                            {str3.addElement("4");k=k+2;}                
                }
                else if(ch[k]=='w'&&ch[k+1]=='u')
                    {str3.addElement("5");k=k+2;}
                else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
                    {str3.addElement("6");k=k+3;}
                else if(ch[k]=='q'&&ch[k+1]=='i')
                    {str3.addElement("7");k=k+2;}
                else if(ch[k]=='b'&&ch[k+1]=='a')
                    {str3.addElement("8");k=k+2;}
                else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
                    {str3.addElement("9");k=k+3;}    
                
                if (k>=length) //一旦超过
                break;
            }
            return str3.toString();     // 将向量转成String形式的
        }
    
    }

     版本二:

    增加手动输入字符串,enter按键输出结果:

    package t0806;
    
    import java.util.Scanner;
    import java.util.Vector;
    
    public class test2 {
        static String ss; 
        public static void main(String[] args){
            System.out.println("请输入字符串:");  
            Scanner scStr = new Scanner(System.in); 
            ss = scStr.next(); 
            
            //String str = "yiersansi";
            String str2 = solve(ss);
            System.out.println("样本输出为:"+str2);
            
        }
        public static String solve(String str2){
            Vector<String> str3=new Vector<String>();
            char ch[]=str2.toCharArray();
            int length=str2.length();
            int k=0;
            while(true){            
                if (ch[k]=='y'&&ch[k+1]=='i')
                    {str3.addElement("1");k=k+2;}
                else if(ch[k]=='e'&&ch[k+1]=='r')
                    {str3.addElement("2");k=k+2;}
                else if(ch[k]=='s')
                {
                    if (ch[k+1]=='a'&&ch[k+2]=='n')
                            {str3.addElement("3");k=k+3;}
                    else if(ch[k+1]=='i')
                            {str3.addElement("4");k=k+2;}                
                }
                else if(ch[k]=='w'&&ch[k+1]=='u')
                    {str3.addElement("5");k=k+2;}
                else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
                    {str3.addElement("6");k=k+3;}
                else if(ch[k]=='q'&&ch[k+1]=='i')
                    {str3.addElement("7");k=k+2;}
                else if(ch[k]=='b'&&ch[k+1]=='a')
                    {str3.addElement("8");k=k+2;}
                else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
                    {str3.addElement("9");k=k+3;}    
                
                if (k>=length) //一旦超过
                break;
            }
            return str3.toString();
        }
    
    }
    View Code

     

  • 相关阅读:
    学习笔记10-用户和组
    学习笔记9-环境变量
    学习笔记8-检测磁盘空间
    学习笔记7-监测程序
    学习笔记6-权限管理
    【数学】矩阵的逆
    【数学】矩阵
    【数学】Polya定理
    【图论】必经点和必经边
    【图论】点双连通分量
  • 原文地址:https://www.cnblogs.com/snowwhite/p/4708555.html
Copyright © 2020-2023  润新知