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");
}
}
}
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")) {
你比较输入字符串,其中你输入的"IDK"与IDK的INDEXVALUE。 它把你的字符串变成一个整数。 所以没有匹配
试试这个:
if (Objects.equals(message, "IDK")) {
System.out.println("IDK: I don't know");
}
您要做的是获取"IDK"的索引,该索引可能为零,但它不会大于 0,因此您的 if 永远不会触发