题解 | #字符串加密#

字符串加密

http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

形成密钥过程如下:

输入Key去重——>在Key末尾按顺序加上字母表内非Key的字母——>形成密钥;

加密过程如下

在字母表内找到需要加密的明文中所有字母所对应的下标——>在按明文的顺序依次在密钥中找到对应下标的字符——>按序输出得到答案。

代码如下(代码应用到了Set接口的无重复性特性进行秒的形成,有用List的可重复性进行密文的形成输出):

import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String str="abcdefghijklmnopqrstuvwxyz";

    String str1=sc.nextLine();                                 //形成密钥。
    str1=str1.toLowerCase(Locale.ROOT);
    LinkedHashSet<Character> list=new LinkedHashSet<>();
    for (int i=0;i<str1.length();i++){
        list.add(str1.charAt(i));
    }
    for (int i=0;i<str.length();i++){
        list.add(str.charAt(i));
    }

    String s=new String();
    for (Character character : list) {
        s=s+character;
    }

    ArrayList<Character> list1=new ArrayList<>();     //形成密文。
    String str2=sc.nextLine();
    str2=str2.toLowerCase(Locale.ROOT);
    for (int i=0;i<str2.length();i++){
        for (int j=0;j<str.length();j++){
            if(str2.charAt(i)==str.charAt(j)){
                list1.add(s.charAt(j));
            }
        }
    }
    for (Character character : list1) {
        System.out.print(character);
    }
}

}

全部评论

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
11-14 17:28
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务