0

我必须为包含以下 reg-ex 的用户名生成唯一 ID

^[a-zA-Z][a-zA-Z0-9.\\-_]{3,19}

我必须使用 UUID() 来生成字符串,并且我已将用户名设置为 6 个字符的长度。我正在尝试用字母替换第一个字符,它不起作用。我写的代码是:

String unique = UUID.randomUUID().toString();
String name = unique.substring(30);
String username = name.replaceFirst("[a-z]{0}", name));
4

1 回答 1

3

你在做什么

String username = name.replaceFirst("[a-z]{0}", name));

正在替换name与 regex 匹配[a-z]{0}的部分name,因此有效地将第一个空字符串替换为 from 的值namename由于可以在您放置在前面的所有字符串的开头找到第一个空字符串name,例如name "921fab"result will be "921fab921fab"


如果你想用范围内的字符替换字符串的第一个字符,a-z那么可能首先生成这个字符

Random r = new Random();
char c = (char) (r.nextInt(26) + 'a');

然后将其添加到子字符串中,name该子字符串将包含从位置 1 的字符开始的所有字符。

String username =  c + name.substring(1);
于 2013-10-25T00:19:01.067 回答