gpt4 book ai didi

java - 返回格式化字符串无法正常工作

转载 作者:行者123 更新时间:2023-11-29 05:04:44 25 4
gpt4 key购买 nike

我创建了一个重复检查来确保新创建的用户名是唯一的。

看起来像这样:

String p1 = <code>; //First 3 chars in first name
String p2 = <code>; //First 3 chars in last name
int p3 = 1; //Unique identifier.
boolean dupeCheck;

do {
dupeCheck = false;
for (int i = 0; i < userNameList.size(); i++) {
if (userNameList.get(i).equals(p1+p2+Integer.toString(p3))) {
dupeCheck = true;
p3++;
}
}
} while (dupeCheck == true);

这有效,如果我返回:

return String.format("%s%s%d", p1, p2, p3);

重复的用户名会得到如下名称:

  • xxyyy1
  • xxyyy2
  • xxyyy3

太棒了。但我希望唯一标识符 (p3) 始终为三位数。这就是 String.format 发挥作用的地方,还有我的问题。

如果我返回以下代码:

return String.format("%s%s%03d", p1, p2, p3);

出于某种原因,欺骗检查失败,我得到了这些用户名:

  • xxyyy001
  • xxyyy001
  • xxyyy001

谁能解释一下发生了什么?

最佳答案

如果您使用 %03d 存储用户名,即带有前导零,则在比较 userNameList 中的字符串时也应该使用它:

userNameList.get(i).equals(String.format("%s%s%03d", p1, p2, p3))

关于java - 返回格式化字符串无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com