我想在java中生成随机标识符.标识符应该具有固定的大小,并且生成相同标识符两次的概率应该非常低(系统具有大约500,000个用户).标识符应该很长,以至于通过蛮力攻击"猜测它"是不可行的.
到目前为止,我的方法是这样的:
String alphabet = "0123456789ABCDE....and so on";
int lengthOfAlphabet = 42;
long length = 12;
public String generateIdentifier(){
String identifier = "";
Random random = new Random();
for(int i = 0;i<length;i++){
identifier+= alphabet.charAt(random.nextInt(lengthOfAlphabet));
}
return identifier;
}
Run Code Online (Sandbox Code Playgroud)
我通过数据库中的约束强制执行唯一性.如果我点击已经创建的标识符,我将继续生成,直到找到一个未使用的标识符.
我的假设是我可以调整lenghtOfAlpahbet和length以获得我正在寻找的属性:
这是一个好方法吗?有没有人对"长度"的价值有任何想法?
我想从对日语文本进行 OCR 识别后收到的字符串中转换数字。
例如,当我提取日期时:
?? ? ? ? ?? ?
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
31 ? 12 ? 13 ?
Run Code Online (Sandbox Code Playgroud)
实现它的最佳方法是什么?