【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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM