gpt4 book ai didi

Java boolean 问题

转载 作者:行者123 更新时间:2023-11-29 06:13:08 24 4
gpt4 key购买 nike

private static final Pattern namePattern = 
Pattern.compile("[a-zA-Z0-9_-]{3,12}");

if (player.getName().length() < 3 ||
player.getName().length() > 12 ||
namePattern.matcher(player.getName()).matches()) {
player.ban("[Autoban] Character-name PE", true);
return;
}

代码有点明显,我希望

如果玩家的名字长于 12 或短于 3,或者有任何不应该是名字的符号 = BAM,禁止!

但即使我的玩家名称像 Chaos 或 test,它也会被此代码自动禁止。idk 如果 namepattern 模式也阻止字符,我只是阻止像 "!#&%¤/&%(/)(/(=)$@£$@£{€@£ 这样的符号额...我做错了什么:(?

最佳答案

我想你的意思是 (!namePattern.matcher(player.getName()).matches())

此外,您可以只使用正则表达式匹配:[a-zA-Z0-9_-]{3,12} 因为它会检查长度。

编辑:

你可以使用这样的函数

public void banIfNeeded(Player player)
{
Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{3,12}");
if(!namePattern.matcher(player.getName()).matches()) {
System.out.print("Banned");
// Ban somehow
}
}

正如@bkail 评论的那样(谢谢!),不需要 ^\z 所以我删除了它们:)

关于Java boolean 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6082283/

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