为什么这不起作用?Java的新手.(布吉)



在Java中为1.8 Bukkit测试服务器制作警报系统。 对Java来说非常陌生。

if (args.length == 0) {
sender.sendMessage("§cUsage: /alert <message>");
return true; // << "return true" means that it will stop running the code
}
if (args[0].equalsIgnoreCase(args[0])) {
String message = args[0];
for (int i = 1; i < args.length; i++) {
message += args[i] + " ";
}
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', message + " "));

我不知道这有什么问题。 每当我在游戏中做/alert 时,它都会发送第一个单词,但随后没有空格,然后它直接进入下一个单词。然后消息的其余部分就可以了。

您当前使用值初始化message,但在循环中不预置空格。改变

message += args[i] + " ";

message += " " + args[i];

此外,args[0]将始终等于args[0](在原始情况下,忽略大小写将其与自身进行比较是奇怪的(。最后,或者,如果使用Java 8+,你可以使用像这样的收集器

String message = Arrays.stream(args).collect(Collectors.joining(" "));
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', message));

最新更新