import java.util.Scanner;
public class TextMsgDecoder {
public static void main(String[] args) {
String message;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter text:");
message = keyboard.nextLine();
System.out.println("You entered: " + message);
if (message.indexOf("IDK") > 0) {
System.out.println("IDK: I don't know");
}
if (message.indexOf("BFF") > 0) {
System.out.println("BFF: best friend forever");
}
if (message.indexOf("JK") > 0) {
System.out.println("JK: just kidding");
}
if (message.indexOf("TMI") > 0) {
System.out.println("TMI: too much information");
}
if (message.indexOf("TTYL") > 0) {
System.out.println("TTYL: talk to you later");
}
}
}
答案 0 :(得分:6)
if (message.indexOf("IDK") > 0) {
System.out.println("IDK: I don't know");
}
这只会检测到不是以IDK
开头的字符串中的IDK
,例如(自_IDK
起将检测到"_IDK".indexOf("IDK") == 1
,但自IDK_
起将检测不到"IDK_".indexOf("IDK") == 0
。
如果要在包括字符串开头的任何位置检测到IDK
,请使用以下任一方法:
if (message.indexOf("IDK") >= 0) {
或更习惯上是:
if (message.contains("IDK")) {
答案 1 :(得分:0)
您正在比较输入字符串,其中您在IDK的INDEXVALUE中键入“ IDK”。它把你的字符串变成一个整数。所以没有匹配项
尝试以下方法:
if (Objects.equals(message, "IDK")) {
System.out.println("IDK: I don't know");
}
您正在做的事情是获取“ IDK”的索引,该索引可能为零,但不会大于0,因此您将永远不会触发