敏感字段加密

题目描述

给定一个由多个命令字组成的命令字符串:

  1. 字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;

  2. 命令字之间以一个或多个下划线,进行分割;

  3. 可以通过两个双引号 ""来标识包含下划线。的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令只字前后多余的下划线。

  4. 如果无法找到指定索引的命令字,输出字符串Q ERROR。

输入描述

输入为两行,第一行为命令字索引 K (从0开始),第二行为命令字符串 S.

输出描述

输出处理后的命令字符串,如果无法找到指定索引的命令字,输出字符串 ERROR

示例1 输入

1 password__a12345678_timeout_100

输出

password_******_timeout_100

索引 1 命令字 "a12345678" 被替换为 "******",并删除了多余的下划线。

示例2 输入

2 aaa_password_"a12_45678"timeout__100""_

输出

aaa_password_******timeout_100""

索引 1 命令字 "a12_45678"(包含在双引号内)被替换为 "******",并删除了多余的下划线。注意最后的空命令字 """" 被保留。

题解

遇到字符 " 后边的字符数原样输出,直到遇到下一个 " ,其他情况下按照 _ 进行分割

源码 Java

import java.util.ArrayList;
import java.util.List;

public class SensitiveWords {

	static Input input ;
	static {
		input = new Input("1\n" +
				"password__a12345678_timeout_100");
		input = new Input("2\n" +
				"aaa_password_\"a12_45678\"_timeout__100_\"\"_");
	}

	public static void main(String[] args) {
		List<String> list = new ArrayList<>();
		int k = Integer.parseInt(input.nextLine());
		String ps = input.nextLine();
		StringBuilder sb = new StringBuilder("");

		for (int i = 0 ; i < ps.length();) {
			if (ps.charAt(i) == '"') {
				// 处理特殊敏感词
				sb.append(ps.charAt(i)) ;
				i++;
				// 遇到下一个 ” 前所有字符原样追加
				while (ps.charAt(i) != '"') {
					sb.append(ps.charAt(i)) ;
					i++;
				}
				sb.append('"');
				list.add(sb.toString());
				sb = new StringBuilder("");
				i++;
			} else {
				// 出现 _ 表示前边有一个敏感词
				if (ps.charAt(i) == '_') {
					// 如果敏感词长度为 0 不记录
					if (sb.length() > 0) {
						list.add(sb.toString());
					}
					sb = new StringBuilder("");
				} else {
					sb.append(ps.charAt(i));
				}
				i++;
			}
		}
		// 处理最后一个敏感词
		if (sb.length() > 0) {
			list.add(sb.toString());
		}
		String[] array = list.toArray(new if (list.size() > k) {
			list.set(k,"******");
			System.out.println(String.join("_", list));
		} else {
			System.out.println("ERROR");
		}
	}
}
#软件开发薪资爆料#
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务