繁体   English   中英

在Java中对字符串使用包含

[英]Using contains on a String in Java

我有一个叫做旅行的字符串。 在此字符串中,敌方玩家选择了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,143,11,14 ,我希望按钮3,11,14和14更改其颜色。 这些按钮实际上改变了,但是1和4也改变了,因为这些数字分别在11和14中,这不是我想要的。

如果有人知道如何解决这个问题,我将不胜感激。

你应该先split使用的分隔符输入字符串, ,然后用一个比较每个部分.equals比较。

不要将String用作其他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中的变量应始终以小写字母开头。

将字符串拆分为数组

请参阅文档: 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);
}

解决了这个。 字符串有一些空格。 在将它们替换为空之后,一切正常。 谢谢您的帮助 :)

例如,字符串跳闸[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);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM