深圳品牌网站制作报价,网页设计与制作教程 刘瑞信 pdf,上弦 网站建设,东钱湖镇建设局网站借鉴文章#xff1a;Java-敏感字段加密 - 哔哩哔哩
题目描述
给定一个由多个命令字组成的命令字符串#xff1b;
1、字符串长度小于等于127字节#xff0c;只包含大小写字母#xff0c;数字#xff0c;下划线和偶数个双引号 2、命令字之间以一个或多个下划线_进行分割…借鉴文章Java-敏感字段加密 - 哔哩哔哩
题目描述
给定一个由多个命令字组成的命令字符串
1、字符串长度小于等于127字节只包含大小写字母数字下划线和偶数个双引号 2、命令字之间以一个或多个下划线_进行分割 3、可以通过两个双引号来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字)双引号不会在命令字内部出现
请对指定索引的敏感字段进行加密替换为******(6个*) 并删除命令字前后多余的下划线_。 如果无法找到指定索引的命令字输出字符串ERROR
输入描述
输入为两行
第一行为命令字索引K (从0开始),
第二行为命 令字符串S。 输出描述
输出处理后的命令字符串如果无法找到指定索引的命令字 输出字符串ERROR 用例 输入 1 password a12345678_timeout_100 输出 password_******_timeout_100 输入 2 aaa_password_a12_45678_timeout_100__ 输出 aaa_password_******_timeout_100_ 说明 无 java 程序
package com.tarena.test.B10;
import java.util.LinkedList; import java.util.Scanner;
/** * * 给定一个由多个命令字组成的命令字符串
1、字符串长度小于等于127字节只包含大小写字母数字下划线和偶数个双引号 2、命令字之间以一个或多个下划线_进行分割 3、可以通过两个双引号来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字)双引号不会在命令字内部出现
请对指定索引的敏感字段进行加密替换为******(6个*) 并删除命令字前后多余的下划线_。 如果无法找到指定索引的命令字输出字符串ERROR 作者红叶快乐起来 https://www.bilibili.com/read/cv23309523/ 出处bilibili * author Administrator * */ public class B11Self { public static void main(String[] args) { try(Scanner sc new Scanner(System.in)){ Integer index Integer.parseInt( sc.nextLine()); String value sc.nextLine(); System.out.println(resultStr(index,value)); } } public static String resultStr(Integer index,String value) { LinkedListString list new LinkedList(); char[] valueArr value.toCharArray(); for(int i 0;ivalueArr.length;i) { char ca valueArr[i]; String temp ; if(ca ) { int next value.indexOf(,i1); //1因为后面的也需要截取到 temp value.substring(i,next1); i next 1; }else { int next value.indexOf(_,i); if(next ! -1) { temp value.substring(i,next); i next; }else { //没有_直接截取后面全部的 temp value.substring(i); //结束循环 i value.length(); } } if(!.equals(temp)) { list.add(temp); } } if(indexlist.size()) { list.set(index, ******); StringBuilder str new StringBuilder(); list.forEach(temp - str.append(temp).append(_)); //将最后的_删除 return str.substring(0,str.length()-1); }else { return ERROR; } } } 了解知识点
1 、try(){} try 方法的内可以自主关闭任何java流类型参数
2、subString(begin,end) begin与end相同是返回 (空字符串)
3、subString(0,value.length()); 这样的截取没有作用。subString 是包头不包尾但是java的索引是从0开始。但是长度是1。如果要丢弃最后一个字符subString(0,value.length()-1) 才可以