Java 角色洗牌后很难获得精确的字符

Java 角色洗牌后很难获得精确的字符,java,android,arrays,data-structures,arraylist,Java,Android,Arrays,Data Structures,Arraylist,假设我有一个字符串“CAA”。我现在做的是随机添加一些字符,例如,让我们假设我添加字符“B”和“D”,并洗牌整个字符数组列表,并将它们放置在一些按钮中,如下所示 这里我的字符数组列表包含{'A'、'C'、'B'、'A'、'D'} 我想做的是当我点击一个按钮时,我想要下面这样的东西 我的意思是只保留包含原始字符串字母的按钮,并禁用所有其他按钮。您可以保留几个不同的数组列表。一个保存您显示的字符,一个保存原件,然后单击按钮时,测试按钮是否在原件ArrayList中,然后将其变灰 创建一个自定义类,

假设我有一个字符串“CAA”。我现在做的是随机添加一些字符,例如,让我们假设我添加字符“B”和“D”,并洗牌整个字符数组列表,并将它们放置在一些按钮中,如下所示

这里我的字符数组列表包含{'A'、'C'、'B'、'A'、'D'}

我想做的是当我点击一个按钮时,我想要下面这样的东西


我的意思是只保留包含原始字符串字母的按钮,并禁用所有其他按钮。

您可以保留几个不同的
数组列表。一个保存您显示的字符,一个保存原件,然后单击按钮时,测试按钮是否在原件
ArrayList
中,然后将其变灰

  • 创建一个自定义类,该类包装一个字符和一个布尔标志,以保持其原始字符

     class MyCharacter {
       private Character c;
       private boolean isOriginal;
    
       public MyCharacter(Character c, boolean isOriginal) {
           this.c = c;
           this.isOriginal = isOriginal;
       }
    
       public Character getChar() {
           return c;
       }
    
       public boolean isOriginal() {
           return isOriginal;
       }
     } 
    
  • 而不是将字符添加到列表中。添加MyChracter对象

  • 对于原始的chracter,在构造函数中传递布尔值true,对于稍后的随机chracter,在构造函数中传递布尔值false

  • 做洗牌或任何你想做的事。随时在列表上迭代。获取MyChracter对象并检查其是否为原始对象

  • 这应该很简单。 希望这有帮助


    干杯

    那些是否决票,至少让我知道为什么否决票没有用。当人们否决票而不解释为什么时,这是令人沮丧的。把这看作是懒惰的人。如今,这种行为在StackOverflow上变得如此频繁。这肯定会吓跑新加入社区的人。但在这里,人们通常期待你努力解决你提出的具体问题。你不能直截了当地问,“我想这样做,我该怎么做?”。我把你的问题投了赞成票,所以干杯。希望你能得到解决方案,不要忘记接受正确的答案或发布你自己的答案。在洗牌之前添加的随机字符。它们是否与原始字符串中的字符相似?@Javanator无法完全理解。但我正在生成一些介于“A”到“Z”之间的随机字符。所以它可能是同一个角色,也可能是不同的角色。这应该很容易做到。请检查我发布的答案是的,我正在尝试这样做,但我的问题是,对于字符串“CAA”的两个“A”,它指向相同的“A”,那么您是否可以使用引用相等而不是逻辑相等进行测试?只要原始的
    ArrayList
    和按钮
    ArrayList
    共享应该可以工作的对象,您可以提供任何对我有用的链接吗?这可能是一个开始:好的,我完成后会通知您,谢谢,