题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
import java.util.HashSet; import java.util.Scanner; import java.util.Set; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String key = in.nextLine(); if (key.isEmpty()) { break; } String str = in.nextLine(); char[] encrypt = new char[26]; Set<Character> set = new HashSet<>(); int k = 0; for (int i = 0; i < key.length(); i++) { if (set.add(key.charAt(i))) { encrypt[k] = key.charAt(i); k++; } } // 26长度数组下标加上'a'即 (char)('a'+i) 就是字母表 char alphabet; for (int i = 0; i < 26; i++) { alphabet = (char)('a' + i); if (!set.contains(alphabet)) { encrypt[k] = alphabet; k++; } } StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { sb.append(encrypt[str.charAt(i) - 'a']); } System.out.println(sb); } in.close(); } }