【发布时间】:2015-02-28 19:58:54
【问题描述】:
所以对于我当前的 Bukkit (Minecraft) 插件,我必须使用 ItemStacks 的名称。 我通过这样做得到这些名字
item.getItemMeta().getDisplayName();.
由于物品代表玩家,它们有玩家的名字。但不幸的是,也有颜色代码。 我收到名字时得到的结果类似于“§7Baustein”,其中“§7”是颜色代码,“Baustein”是玩家的名字。
现在颜色代码也可以是“§a”或“§3”或类似的东西。要仅获取玩家的姓名,我必须从我得到的字符串中删除该颜色代码。
我知道如何删除“§”,因为它总是一样的:string.replaceAll("§", "");。但是后面还有这个十六进制数字,具体是什么数字我也不知道。
除了检查所有可能性之外,有没有办法找到replaceAll("§" + the digit behind, "");?
我已经查看了类似this 的问题,但要么我没有真正明白,要么就是没有包括我的答案。
也许有人可以帮助我?
【问题讨论】:
-
ReplaceAll 使用正则表达式,所以我认为你可以使用这个: .replaceAll("§\\p{XDigit}*", "");根据这个问题:stackoverflow.com/questions/2756794/…