2014-12-05 145 views
-1

代码:应该返回true,但返回false?

Bukkit.getServer().broadcastMessage("Check " + ChatColor.stripColor(i)); 
Bukkit.getServer().broadcastMessage("That it starts with " + ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',  GUIShop.instance.getConfig().getString("Messages." + type + "Label")))); 
Bukkit.getServer().broadcastMessage(ChatColor.stripColor(i).startsWith(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', GUIShop.instance.getConfig().getString("Messages." + type + "Label")))) + ""); 

而且它的图像返回假,而不是真正: enter image description here

可能我太傻了..不知道

EDIT1:好了,所以拜eckes他指出,我当时很愚蠢......我如何检查“购买:50.0”是否以“购买:价格”开头。如果高达%价格%

+0

223行对于单行非常长,您应该考虑将它分成几行。 – August 2014-12-05 21:56:36

+0

'stripColor'确实听起来像一个可变的操作。不知道Bukkit的任何API,你确定这个调用不会改变状态吗? – Makoto 2014-12-05 21:59:45

+0

https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/ChatColor.java#L187回复@Makoto – user3448331 2014-12-05 22:02:40

回答

0

错误是正确的,“Buy: 50.0”不以“Buy: %price%”开头。而且您应该不会将颜色逻辑与翻译逻辑与业务逻辑混合。

让你的代码可读,它通常有助于你自己找到问题。

如果你想删除%的价格%你可以使用:

String check = ChatColor.stripColor(i); 
String pattern = ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', 
        GUIShop.instance.getConfig().getString("Messages." + type + "Label"))); 
pattern = pattern.replace(" %price%", ""); 
boolean isBuy = check.startsWith(pattern); 

我不能让它变得没有更多的背景细节更加易读。

+1

我结束了使用split方法,不知道是哪一个最好的,但感谢您的帮助! – user3448331 2014-12-05 22:10:02

+0

在这种情况下,我删除了一个固定的字符串,你可能想要解析为空或%或类似。 – eckes 2014-12-05 22:10:34

相关问题