我想匿名一个字符串(来自用户的任意输入),但仍保留其结构。因此,我想用随机小写字母替换小写字母,用随机数字替换大小写字母,用随机大写字母替换大写字母。
我已经提出了这个功能,但我想知道这是否是最快/最好的方式?
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
答案 0 :(得分:-1)
基本上你的解决方案很好但是有一些方法可以使代码更加干净:
char createNewUpperCase()
,char createNewDigit()
和char createNewLetter()
)if
逻辑提取到单独的方法中(例如char createNewChar(char currentChar)
)通过这种方式,您的代码将从Single Responsibility Principle方面更好。