我有一个名为trip的字符串。在这个字符串中,敌方玩家选择了3个值。 我希望等于其中一个值的按钮改变它们的颜色。
for(int i = 0; i <=Lobby.baanlengte;i++){
if ((trips.contains(Speler1[i].getActionCommand()))) {
System.out.println("Trips bevat"+i);
Speler1[i].setBackground(Color.gray);
}
}
假设字符串跳闸是3,11,14
,我希望按钮3,11和14改变颜色。这些按钮实际上会改变,但是1和4也会改变,因为这些数字在11和14中,这不是我想要的。
如果有人知道如何解决这个问题,我将不胜感激。
答案 0 :(得分:3)
您应首先使用分隔符,
split
输入字符串,然后使用.equals
比较比较每个部分。
答案 1 :(得分:2)
不要将String用作其他字符串的容器。使用java.util.Set<String>
:
Set<String> trips = new HashSet<String>();
// ...
if (trips.contains(Speler1[i].getActionCommand())) {
System.out.println("Trips bevat"+i);
Speler1[i].setBackground(Color.gray);
}
这将有其他优势:
注意:Java中的变量应始终以小写字母开头。
答案 2 :(得分:0)
将字符串拆分为数组
参见文档:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split(java.lang.String)
String trips_array[] = trips.split(",");
for(int i = 0; i < trips_array.length; i++){
Speler1[i].setBackground(Color.gray);
}
答案 3 :(得分:0)
解决了这个问题。 String有一些空格。在更换它们之后,一切都工作,因为它应该工作。谢谢你的帮助:)
字符串跳闸例如[13,14,16]。
trips = trips.replace("[", " ");
trips = trips.replace("]", " ");
trips = trips.replace(" ", "");
String parts[] = trips.split(",");
for(int i = 0; i <= Lobby.baanlengte; i++){
for (String item : parts){
if(item.equals(Speler1[i].getActionCommand())){
Speler1[i].setBackground(Color.gray);
}
}
}