最后
无论是哪家公司,都很重视基础,大厂更加重视技术的深度和广度,面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。
针对以上面试技术点,我在这里也做一些分享,希望能更好的帮助到大家。
敏感字段加密
给定一个由多个命令字组成的命令字符串:
1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号
2、命令字之间以一个或多个下划线 _ 进行分割;
3、可以通过两个双引号”来标识包含下划线 的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现
请对指定索引的敏感字段进行加密,替换为****** (6个*) ,并删除命令字前后多余的下划线如果无法找到指定索引的命令字,输出字符串ERROR。
输入描述
输入为两行,第一行为命令字索引K (从0开始) ,第二行为命令字符串S.
输出描述
输出处理后的命令字符串,如果无法找到指定索引的命令字,输出字符串ERROR
输入1 | 输入2 | 输出 | 说明 |
---|---|---|---|
1 | password__a12345678_timeout_100 | password_******_timeout_100 | 加密第二个命令字 |
2 | aaa_password_“a12_45678”timeout__100_“”_ | aaa_password_******_ timeout__“” | 加密第三个命令字 |
源码和解析
解析:
1.将输入的命令字串转换成单字符数组 char[]
2.遍历单字符数组,并判断单个字符的含义
2.1 遍历字符数组,遇到指令截止符,则代表一个命令字结束,截止符有以下几种情况
2.1.1 第二次双引号出现
2.1.2 下划线(需要判断是否前面有引号,若有,则代表不是截止符。空下划线过滤掉)
2.1.3 字符数组遍历结束时 即最后一个字符
2.2 不断产生命令字后加入List之中
2.3 判断输入的索引是否越界
2.3.1 若越界 则输出ERROR
2.3.2 若未越界 将索引对应位置的命令字替换为*****
2.4 遍历List 产生最后的加密指令
示例代码:
import java.util.\*;
import java.util.Scanner;
public class T1 {
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入索引:");
int index=Integer.parseInt(scanner.nextLine());
System.out.println("请输入命令串:");
String input=scanner.nextLine();
char[] chArr=input.toCharArray();
String cmd="";
List<String> cmdList=new ArrayList<>();
for(int i=0;i<chArr.length;i++){
char item=chArr[i];
if(item=='"'&&cmd.contains(item+"")){
//如果是双引号 且该命令字内有 那么就是结束的双引号
cmd+="\"";
cmdList.add(cmd);
cmd="";
}else if(item=='\_'&&!cmd.contains("\"")){
//item=='\_' 下划线 表示指令结束
//!cmd.contains("\"") 该命令内前面不包含" 若包含 则是引号内的 为同一个命令字
//cmd.equals("") 该命令字内是空的 那么就是空下划线 无意义 过滤掉
if(!cmd.equals("")){
cmdList.add(cmd);
cmd="";
}
}
else if(i==chArr.length-1){
//如果是最后一位 则直接结束最后一个命令字
# **最后**
分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。
**这些面试题相对应的技术点:**
* JVM
* MySQL
* Mybatis
* MongoDB
* Redis
* Spring
* Spring boot
* Spring cloud
* Kafka
* RabbitMQ
* Nginx
* ......
**大类就是:**
* Java基础
* 数据结构与算法
* 并发编程
* 数据库
* 设计模式
* 微服务
* 消息中间件
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/c6743970946f66ae7ec92e1ba9a077ab.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/480b43bff5be87da62db92655a099bbf.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/070db651a18d8307cba4b7f51c329e5b.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/fbe453215bbd09e3785c7939a57251b5.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/0fc469a9021745da2fa38c1cff94e79e.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/f9b827a25e311c0ee02d5853118b35a4.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/e3f32a5c38c38e14ae33a12416bb3000.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/bf271f738030d66c3b34483e88d6afe9.webp?x-oss-process=image/format,png)
![程序员,每个月给你发多少工资,你才会想老板想的事?](https://img-blog.csdnimg.cn/img_convert/22dcf70287169945c6350a0c351e6479.webp?x-oss-process=image/format,png)
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**