java - 测试 X = A、B 或 C

标签 java testing

我确定对此有答案,但我似乎找不到,我已经搜索了几个小时。

标题几乎概括了它,我如何测试 X = A、B 或 C

Qhey = "嘿";

Qhi = "你好";

Qhello = "你好";

我得到了这段代码:

if(InputField.getText().contains(Qhey))
    {
        try {
            textArea.getDocument().insertString(0,Qhello +", todays date is "+day+"/"+month+"/"+year + "\n", null);

        }catch (BadLocationException ex) {
                Logger.getLogger(ClassStart.class.getName()).log(Level.SEVERE, null, ex);                                

        }
    } 

我想把它做成这样:

if(InputField.getText().contains(Qhey, Qhi, Qhello))
    {
        try {
            textArea.getDocument().insertString(0,Qhello +", todays date is       "+day+"/"+month+"/"+year + "\n", null);

        }catch (BadLocationException ex) {
                Logger.getLogger(ClassStart.class.getName()).log(Level.SEVERE, null, ex);                                

        }
    }

最佳答案

如果要匹配的字符串可能不止三个,那么您应该使用 Set:

static final Set<String> matches = Collections.unmodifiableSet(
     new HashSet(Arrays.asList("A", "B", "C")));

boolean isMatch(String s) { return matches.contains(s); }

这种方法的另一个优点是时间复杂度为 O(1)——检查 1,000,000 个字符串只比检查 3 个字符串稍微长一些。

关于java - 测试 X = A、B 或 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145014/

相关文章:

java - Eclipse 中未定义的 vector

java - 使用 "P"重命名节点名称,并将属性添加为旧名称

java - 为什么在填充包含 < 类型元素的集合时行为会有所不同?扩展 T>?

javascript - 我可以将导入语句提取到不同的文件吗?

node.js - 从测试文件 Compound.js 中读取环境特定变量

java - 字符串格式中的自动字段编号

java - 如何实现 "recycle bin"功能?

python - 如何正确使用单元测试(任何语言)

selenium - 基于云的测试自动化工具

javascript - 如何使用 Jest 模拟 https.get