Java 已给定字符串中的占位符

Java Placeholder in already given String

因此,对于我当前的 Bukkit (Minecraft) 插件,我必须使用 ItemStacks 的名称。 我通过

得到这些名字

item.getItemMeta().getDisplayName();.

由于物品代表玩家,所以它们有玩家的名字。但不幸的是,还有颜色代码。 我在收到名称时得到的结果类似于“§7Baustein”,其中“§7”是颜色代码,"Baustein" 是玩家的名字。

现在颜色代码也可以是“§a”或“§3”或类似的东西。为了只获取玩家的名字,我必须从我获取的字符串中删除该颜色代码。

我知道如何删除“§”,因为它总是一样的:string.replaceAll("§", "");。但是后面还有这个十六进制数字,具体是什么数字我也不知道

除了检查所有可能性,有没有一种方法可以 replaceAll("§" + the digit behind, "");

我已经查看了 this 之类的问题,但要么我没有真正理解它,要么只是不包括我的答案。

也许有人可以帮助我?

如果它始终恰好是您要删除的前两个字符,您可以使用:

public String removeColorCode(String s){
return s.substring(2);
}

是的。查看正则表达式。

这个

string.replaceAll("§[0-9a-fA-F]", "")

将从您的字符串中删除 § 和一个十六进制数字。