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]", "")
将从您的字符串中删除 § 和一个十六进制数字。
因此,对于我当前的 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]", "")
将从您的字符串中删除 § 和一个十六进制数字。