题解 | #字符串加密#

字符串加密

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

Java解法

  1. 存储有序不重复数据的办法:
if(set.add(c)){
  list.add(c);
}
  1. strbuilder.insert(0,"...")在最前面添加字符串
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String key = in.nextLine();
		String s = in.nextLine();
		
		char[] key_c = key.toLowerCase().toCharArray();
		
		//通过set消除Key中的重复字符
		Set<Character> set = new HashSet();
		List<Character> newAlphabet = new ArrayList<>();
		for(char c:key_c) {
			if(set.add(c)) {
				newAlphabet.add(c);
			}
		}
		//形成新字母表
		for(int i=0;i<26;i++) {
			char c = (char)(i+'a');
			if(set.add(c)) {
				newAlphabet.add(c);
			}
		}
		//List<Character> newAlphabet_l = new ArrayList<Character>(newAlphabet);
		//System.out.println(newAlphabet.toString());
		
		StringBuilder strb = new StringBuilder();
		for(int i=0;i<s.length();i++) {
			char c = s.charAt(i);
			if(c==' ') {
				strb.append(" ");
			}else if(c>='a' && c<='z') {
				strb.append(newAlphabet.get(c-'a'));
			}
			else if(c>='A' && c<='Z') {
				strb.append(Character.toUpperCase(newAlphabet.get(c-'A')));
			}
		}
		
		System.out.println(strb.toString());
	}
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务