【java】将字符串中的大写字母、小写字母和数字随机替换成同类其它字母
【需求】
将大写字母随机替换成任意大写字母
将小写字母随机替换成任意小写字母
将数字随机替换成数字
其它保持
【代码】
package com.hy.lab; /** * 随机替换算法 * 将大写字母随机替换成任意大写字母 * 将小写字母随机替换成任意小写字母 * 将数字随机替换成数字 * 其它保持 */ public class RandomReplacer { public String encrypt(String original){ char[] arr=original.toCharArray(); for(int i=0,n=arr.length;i<n;i++){ char c=arr[i]; if('A'<=c && c<='Z'){ c=getRndChar('A',25); }else if('a'<=c && c<='z'){ c=getRndChar('a',25); }else if('0'<=c && c<='9'){ c=getRndChar('0',9); }else{
continue;
} arr[i]=c; } return String.valueOf(arr); } private static char getRndChar(char start,int range){ start+=rnd(0,range); return start; } private static int rnd(int min,int max) { return (int)(min+Math.random()*(max-min+1)); } public static void main(String[] args){ String[] arr={"abc123ABC456","xyz098XYZ890","哈哈123","秦a时f明3月2汉1时D关","1234567890","abcdefghjklmnopqrstuvwxyz","ABCDEFGHJKLMNOPQRSTUVWXYZ"}; RandomReplacer rp=new RandomReplacer(); for(String str:arr){ String msg=String.format("原文=%-10s,转换文=%-10s",str,rp.encrypt(str)); System.out.println(msg); } } }
输出:
原文=abc123ABC456,转换文=xty499IKG986 原文=xyz098XYZ890,转换文=dpi925CGX757 原文=哈哈123 ,转换文=哈哈860 原文=秦a时f明3月2汉1时D关,转换文=秦n时z明2月2汉1时Y关 原文=1234567890,转换文=0470675385 原文=abcdefghjklmnopqrstuvwxyz,转换文=lwdhggjymtgdgrprczjmfudsk 原文=ABCDEFGHJKLMNOPQRSTUVWXYZ,转换文=EIVLWJKDXIMFKAIJERHWKFIRB
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-04-16 从产品表中归纳出同类前缀 再实验
2020-04-16 (高难度SQL)从产品表中找出相同前缀 (都云作者痴 谁解其中味)
2018-04-16 【Canvas与徽章】金边红底赢字徽章