java - 如何使 if/else 语句读取第一个匹配的关键字? ( java )

标签 java if-statement

如何在 ChatBot 程序中实现第一个匹配关键字的条件?下面的代码是我正在使用的当前代码:

public static void firstMatchingKeyword1() {
    String sex;
    sex = JOptionPane.showInputDialog(null, "Are you a guy or woman?");
            if (sex.contains("guy")) {
        JOptionPane.showMessageDialog(null, "I am a guy too");  
            } else if (sex.contains("woman")) {
            JOptionPane.showMessageDialog(null, "I am a woman too");
    }
}

问题是,如果两个关键字都存在,我希望输出是第一个键入的关键字。 例如:如果用户输入“我是女人,但也是男人”。我希望输出只是消息“我也是女人”,而不是一个一个地检查所有 if 语句。

最佳答案

indexOf是你的 friend 。

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.

if (sex.indexOf("guy") > 0 && sex.contains("guy") && (sex.indexOf("guy")<sex.indexOf("woman") || 
 sex.indexOf("woman") == -1)) {

{
     JOptionPane.showMessageDialog(null, "I am a guy too");  
} else if (sex.contains("woman")) {
     JOptionPane.showMessageDialog(null, "I am a woman too");
}

关于java - 如何使 if/else 语句读取第一个匹配的关键字? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586453/

相关文章:

java - GET , POST , PUT , DELETE keycloak 中基于类型的身份验证

设置 Xms Xmx 时,Java Heap Space 不会增加,

java - Hybris 产品驾驶舱属性部分

c++ - 仅编译 if-else 的一部分

java - 条件语句不起作用 Java

java - 数组的 subList - 转换为通用类型时出现 ClassCastException

java - 在二十一点中检查双下

ios - 需要帮助设置 IF 语句 iOS Swift

javascript - 错误: 'let' declarations can only be declared inside a block

c - C中的多个if语句