【问题标题】:Java - Checking sub array of chars ( contains some chars ? )Java - 检查字符的子数组(包含一些字符?)
【发布时间】:2014-11-12 16:25:31
【问题描述】:

在我的程序中,我想确保一个字符串(字符数组)只有特定字符(或不同字符的特定计数,没有更多),所以我编写了这段代码,但这里有个问题,它不起作用正确。

示例:如果我们有这个 char 数组来检查“hello”,并且我们想确保它只有“ollhevi”或更少,它应该返回 true。

或者更好的:
单词 = {'h','e','l','l','o'}
想要 = {'a','o','h','l'}
返回错误
因为你好没有'a';

理论上它是有效的。

代码

public boolean check(ArrayList<Character> words, ArrayList<Character> wanted) {
    for (Character chr : words) {
        if (wanted.contains(chr)) {
            wanted.remove(chr);
        } else {
            return false;
        }
    }
    return true;
}

【问题讨论】:

  • 你的例子不清楚...
  • 你试过wanted.removeAll(words); return wanted.isEmpty();
  • 是的,但它对我的问题不起作用,因为字符数对我来说很重要,例如想要的是 'a''a''b' 但单词是 'a''b''b'这个命令会删除所有
  • 请说明您是如何创建列表的。我已经测试了你的方法并且它有效。至少对于你的例子。

标签: java arrays arraylist char


【解决方案1】:

以其他方式运行 for 循环。

遍历想要的数组中的所有字符,并查看它们是否存在于单词数组中。如果缺少任何字符,则返回 false。

public boolean check(ArrayList<Character> words, ArrayList<Character> wanted) {
for (Character chr : wanted) {
    if (!words.contains(chr)) {
        return  false;
    } 
}
return true;

}

【讨论】:

  • 正如我所说,特定类型字符的数量对我来说很重要。
  • 你可以添加到其他部分。使用 创建一个映射,并在每次遇到映射中的有效变量时递增计数。没那么难。
  • 不,我的意思是特定类型的计数不是整个字符串
  • 这就是为什么使用地图。您可以将每个字符及其数量存储在地图中。
  • 好主意,但我必须处理 100000 个字符串,所以我需要快速方法
【解决方案2】:

根据您的回答。检查字符是否被删除更有效。如果不是,check() 可以返回 false 并停止迭代。它更快。 如果列表包含该元素,请注意 List#remove(Object o) 返回 true。

public boolean check(ArrayList<Character> words, ArrayList<Character> wanted) {
    for (Character chr : wanted) {
        if(!words.remove(chr)){
           return false;
        }

    }
    return true;
}

【讨论】:

  • 我做不到。因为可能有些需求不是语言。
【解决方案3】:

所以那是我的大错!!
感谢所有回答
这是解决方案

public boolean check(ArrayList<Character> words, ArrayList<Character> wanted) {
    for (Character chr : wanted) {
        words.remove(chr);
    }
    return words.isEmpty();
}

【讨论】:

  • 始终接受答案为正确答案的人。这样人们就知道它已经得到了回答。
猜你喜欢
  • 2020-11-28
  • 2021-12-14
  • 2012-05-01
  • 1970-01-01
  • 2016-08-09
  • 2017-01-18
  • 2016-05-21
  • 2015-12-29
  • 2022-11-22
相关资源
最近更新 更多