每日移到算法題 1

借鑒文章: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) {
?? ??? ?LinkedList<String> list = new LinkedList<>();
?? ??? ?char[] valueArr = value.toCharArray();
?? ??? ?for(int i =0;i<valueArr.length;i++) {
?? ??? ??? ?char ca = valueArr[i];
?? ??? ??? ?String temp = "";
?? ??? ??? ?
?? ??? ??? ?if(ca == '"') {
?? ??? ??? ??? ?int next = value.indexOf('"',i+1);
?? ??? ??? ??? ?//+1因為后面的"也需要截取到
?? ??? ??? ??? ?temp = value.substring(i,next+1);
?? ??? ??? ??? ?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(index<list.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) 才可以;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210485.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式-工廠模式(Factory)

Factory模式是一種創建型設計模式&#xff0c;用于封裝對象的實例化過程。它提供了一個統一的接口來創建不同類型的對象&#xff0c;而無需暴露具體的實例化邏輯給客戶端。 #include <iostream> #include <memory>// AbstractProduct&#xff08;抽象產品類&#…

mybatis-plus處理blob字段

轉載自&#xff1a;www.javaman.cn 在 Spring Boot 項目中使用 MyBatis-Plus 處理 longblob 字段時&#xff0c;我們可以按照以下步驟進行操作。假設 longblob 存儲的是字符串數據。以下是完整的示例代碼&#xff1a; 添加依賴&#xff1a;在你的項目的 pom.xml 文件中添加 My…

js判斷上傳的文件是GBK編碼還是UTF-8

1、獲取文件二進制數據&#xff0c;這里只做示例&#xff0c;例如element-ui中文件上傳的beforeUpload方法&#xff0c;返回的file對象&#xff0c;然后使用FileReader對其進行轉換&#xff0c;再進行后續判斷 function beforeUpload(file: File) { const reader new FileRea…

Linux基本指令(超詳版)

Linux基本指令&#xff08;超詳版&#xff09; 1. ls指令2.pwd指令3. cd 指令4.touch指令5mkdir指令6.rmdir指令&&rm指令7.man指令7.cp指令8.mv指令9.echo指令10.cat指令11.more指令12.less指令13.head指令14.tail指令15.date指令16.find指令17.grep指令zip(打包壓縮) …

JVM類加載器ClassLoader的源碼分析

1、ClassLoader與現有類加載器的關系 ClassLoader與現有類加載器的關系&#xff1a; ClassLoader是一個抽象類。如果我們給定了一個類的二進制名稱&#xff0c;類加載器應嘗試去定位或生成構成定義類的數據。一種典型的策略是將給定的二進制名稱轉換為文件名&#xff0c;然后去…

C語言--實現一個函數把一個整數轉為它對應的十六進制的字符串

一.題目描述 實現一個函數把一個整數轉為它對應的十六進制的字符串。 比如&#xff1a;輸入數字1234 輸出&#xff1a;4D2 二.思路分析 用一個sprintf函數可以解決問題&#xff0c;輸出相對應的字符串 要注意的問題就是&#xff1a;函數結束后要繼續使用的內存&#xff08;比如…

Carla自動駕駛仿真六:pygame多個車輛攝像頭畫面拼接

此文章主要介紹carla前后左右攝像頭畫面拼接到pygame上 文章目錄 前言一、要點分析二、完整代碼三、拼接效果四、總結 前言 1、使用carla做仿真測試或者開發時&#xff0c;如果能夠將車輛周邊的畫面拼接并渲染&#xff0c;可以直觀地查看周圍地環境&#xff0c;便于調試。本文…

Spring Boot 工廠模式 + 抽象類 + 泛型干掉重復代碼

業務場景&#xff1a;N個Excel導入&#xff0c;實現動態加載&#xff0c;只需要定義Excel實體&#xff0c;即可實現功能開發&#xff0c; 核心代碼 import cn.afterturn.easypoi.excel.annotation.ExcelTarget; import cn.hutool.core.annotation.AnnotationUtil; import cn.h…

刪除Windows系統中無用的隱藏設備

一些即插即用設備會占用一些隱藏的系統資源&#xff0c;比如USB轉串口的設備會占用COM號碼&#xff0c;網卡會占用靜態IP地址等等。 通常我們使用設備管理器的顯示隱藏設備功能&#xff0c;來刪除這些設備。但是設備管理器每次只允許刪除一個設備&#xff0c;如果設備太多了&a…

【算法集訓】基礎數據結構:四、棧

棧理解了兩天&#xff0c;所以遲了一天發。 一、棧的概念 棧是一個容器&#xff0c;是一個先進后出的線性表&#xff0c;類似與日常生活中的電梯、杯子等。 僅限在表尾部進行插入和刪除操作。 使用鏈表來模擬棧&#xff1a; typedef int DataType; 相當于給int起一個別名 st…

Go 協程基礎:輕松入門并發編程,解析 Goroutines 的奧秘

一、協程基本使用 1、啟動一個協程 主線程中每個100毫秒打印一次&#xff0c;總共打印2次另外開啟一個協程&#xff0c;打印10次情況一&#xff1a;打印是交替&#xff0c;證明是并行的情況二&#xff1a;開啟的協程打印2次&#xff0c;就退出了&#xff08;因為主線程退出了…

做題筆記:SQL Sever 方式做牛客SQL的題目--SQL157

----SQL157 平均播放進度大于60%的視頻類別 計算各類視頻的平均播放進度&#xff0c;將進度大于60%的類別輸出。 注&#xff1a; 播放進度播放時長視頻時長*100%&#xff0c;當播放時長大于視頻時長時&#xff0c;播放進度均記為100%。 結果保留兩位小數&#xff0c;并按播放進…

基于ssm的學生公寓管理中心系統的設計與實現論文

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本學生公寓管理中心系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據…

[報錯]記錄IDEA遠程開發報錯:java: Cannot run program.....

報錯內容 IDEA在進行遠程開發的時候報錯&#xff0c;內容如下&#xff1a; java: Cannot run program "/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java" (in directory "/home/jim/.cache/JetBrains/RemoteDev-IU/_home_jim_DevCodes_Github_zfile/compile-…

redis主從復制【面試必看】

在分布式系統中&#xff0c;希望使用多個服務器來部署redis&#xff0c;存在以下幾種redis的部署方式 主從模式主從哨兵集群模式 主從模式 在若干個redis節點中&#xff0c;有的是主節點&#xff0c;有的是從節點 假設有三個物理服務器&#xff08;稱為是三個節點&#xff…

(JSP)EL——優化登錄界面,獲取對象,獲取數據

EL優化登錄界面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"reques…

生產工序(oj題)

很有趣的一道題 關鍵在于固定工序的整合 看樣例是固定工序中間是不能插入其他工序的&#xff08;也不講清楚&#xff09;&#xff0c;如果可以的話&#xff0c;只能說可能會更麻煩 注意固定工序是按照固定工序中的第一個工序進行排序的 整合完之后&#xff0c;就是遞歸列出…

Java中的IO流①——IO流的體系、字節流、try...catch異常處理

概述 IO流的分類 IO流的體系 這四個類都是抽象類&#xff0c;所以需要實現類對象才能使用---> 字節流 FileInputStream--> 書寫細節 代碼示范 此時文件a.txt內容為abcde 使用char強轉和read方法調用五次read方法--> public static void main(String[] args) throws IO…

mysql 語言學習

整理了一下 mysql 操作語言&#xff0c;不是很全&#xff0c;部分地方也許需要修改&#xff0c;先放上來&#xff0c;有時間再慢慢完善。 一、數據庫操作 連接數據庫 $ sudo mysql [-h ip] -u root -p [-P 3306] 初始化數據庫 $ mysql_secure_installation備份數據庫 # 備…

初出茅廬的小李博客之TobudOS移植到EVB_AIoT開發板

本博客參考教程&#xff1a; https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md 介紹一下EVB_AIoT開發板 這個開發板是由TobudOS開源社區聯合意法半導體、南京厚德物聯網設計的一款高性能IoT開發平臺&#xff0c;主控芯片是S…