[英]Substitute letters and numbers with random characters in a string
我想匿名化一個字符串(用戶的任意輸入),但仍然保持其結構。 因此,我想將小寫字母替換為隨機的小寫字母,將數字替換為隨機數字,將大寫字母替換為隨機的大寫字母。
我想出了這個功能,但我想知道這是最快/最好的方法嗎?
public String anonymiseString(String originalInput){
StringBuilder input = new StringBuilder(originalInput);
Random r = new Random();
char currentChar;
for(int i = 0; i < input.length(); i++) {
currentChar = input.charAt(i);
if(Character.isUpperCase(currentChar))
input.setCharAt(i, (char) (r.nextInt(26) + 'A'));
else if (Character.isLowerCase(currentChar))
input.setCharAt(i, (char) (r.nextInt(26) + 'a'));
else if (Character.isDigit(currentChar))
input.setCharAt(i, (char) (r.nextInt(10) + '0'));
}
return input.toString();
}
可以在此處運行示例: https : //ideone.com/VNebO0
基本上,您的解決方案是好的,但是有一些方法可以使代碼更簡潔:
char createNewUpperCase()
, char createNewDigit()
和char createNewLetter()
) if
邏輯也提取到單獨的方法中(例如char createNewChar(char currentChar)
) 這樣,從“ 單一責任原則”的角度來看,您的代碼會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.