因此,对于我目前的Bukkit(Minecraft)插件,我必须使用ItemStacks的名字。 我做了这些名字
item.getItemMeta().getDisplayName();
。
由于项目代表玩家,因此他们拥有玩家的名字。但不幸的是,还有颜色代码。 接收名称后得到的结果就像“§7Baustein”,其中“§7”是颜色代码,“Baustein”是玩家的名字。
现在颜色代码也可以是“§a”或“§3”或类似的东西。为了获得玩家的名字,我必须从我得到的字符串中删除该颜色代码。
我知道如何删除“§”,因为它始终是相同的:string.replaceAll("§", "");
。但是后面还有这个十六进制数字,我不知道它是什么具体的数字。
有没有办法实现replaceAll("§" + the digit behind, "");
?
我已经检查了this之类的问题,但要么我没有得到它,要么就是不包括我的答案。
也许有人可以帮助我?
答案 0 :(得分:1)
如果它总是与您要删除的前两个字符完全相同,则可以使用:
public String removeColorCode(String s){
return s.substring(2);
}
答案 1 :(得分:1)
是。查看正则表达式。
此
string.replaceAll("§[0-9a-fA-F]", "")
将从字符串中删除§和一个十六进制数字。