• 【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

  • 相关阅读:
    HDU1272---(并查集)简单应用
    HDU1232 畅通工程---(经典并查集应用)
    HDU 1877 又一版 A+B(进制转换)
    L1-020. 帅到没朋友
    L2-001. 紧急救援---(Dijkstra,记录路径)
    JVM Class字节码之三-使用BCEL改变类属性
    JVM Class详解之一
    Jvm原理剖析与调优之内存结构
    虚拟化的发展历程和实现原理——图文详解
    JVM学习笔记(四)------内存调优
  • 原文地址:https://www.cnblogs.com/heyang78/p/16151773.html
Copyright © 2020-2023  润新知