蓝桥杯-9-3摩尔斯电码(java)

                 算法提高 9-3摩尔斯电码  
            时间限制:1.0s   内存限制:256.0MB

            问题描述
              摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。

              摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。

            提示
              清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:

              1. 一次读入整行字符串,再进行后续解析。

              2. 使用getchar或scanf一次读入一个字符,通过它们的返回值判断输入结束。
            样例输出
    import java.util.Scanner;  

    public class Main {  
        public char Getchar(String A){  //这里if多了,想的话自己改改
            char result = 0;  

             if(A.equals("*-"))  
                 result = 'a';  
         else if(A.equals("-***"))  
             result = 'b';  
         else if(A.equals("-*-*"))  
             result = 'c';  
         else if(A.equals("-**"))  
             result = 'd';  
         else if(A.equals("*"))  
             result = 'e';  
         else if(A.equals("**-*"))  
             result = 'f';  
         else if(A.equals("--*"))  
             result = 'g';  
         else if(A.equals("****"))  
             result = 'h';  
         else if(A.equals("**"))  
             result = 'i';  
         else if(A.equals("*---"))  
             result = 'j';  
         else if(A.equals("-*-"))  
             result = 'k';  
         else if(A.equals("*-**"))  
             result = 'l';  
         else if(A.equals("--"))  
             result = 'm';  
         else if(A.equals("-*"))  
             result = 'n';  
         else if(A.equals("---"))  
             result = 'o';  
         else if(A.equals("*--*"))  
             result = 'p';  
         else if(A.equals("--*-"))  
             result = 'q';  
         else if(A.equals("*-*"))  
             result = 'r';  
         else if(A.equals("***"))  
             result = 's';  
         else if(A.equals("-"))  
             result = 't';  
         else if(A.equals("**-"))  
             result = 'u';  
         else if(A.equals("***-"))  
             result = 'v';  
         else if(A.equals("*--"))  
             result = 'w';  
         else if(A.equals("-**-"))  
             result = 'x';  
         else if(A.equals("-*--"))  
             result = 'y';  
         else if(A.equals("--**"))  
             result = 'z';  
            return result;  
        }  

        public void Getsentence(String ch){  
            String str1;  
            StringBuilder[] str = new StringBuilder[1000];  
            int j=0,count = 0;  
            str[j] = new StringBuilder();         
            for(int i=0;i<ch.length();i++){  
                if(ch.charAt(i)=='|'){  
                    j++;  
                    str[j] = new StringBuilder();    //看懂这个就可以
                    count=j;  

                }  
                else{  

                    String str2 = String.valueOf(ch.charAt(i));  //将char转换为string类  
                    str[j].append(str2);  
                }  

            }  
            for(int k=0;k<=count;k++){  
                str1 = str[k].toString();   //将Stringbuilder类转换为string类  
                char temp = Getchar(str1);  
                System.out.print(temp);  
            }  


        }  

        public static void main(String[] args) {  
            Main test = new Main();  
            Scanner sc = new Scanner(System.in);  
            String ch = sc.nextLine();  
            test.Getsentence(ch);  

        }  

    }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-java-maker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值