为什么.indexOf()方法没有检测到字符串"IDK"并且没有输出?

-2 java

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");
      }
   }

}
Run Code Online (Sandbox Code Playgroud)

And*_*ner 6

if (message.indexOf("IDK") > 0) {
  System.out.println("IDK: I don't know");
}
Run Code Online (Sandbox Code Playgroud)

这将只检测IDK不以IDK(例如_IDK将被检测到的"_IDK".indexOf("IDK") == 1)字符串,而不是IDK_(自"IDK_".indexOf("IDK") == 0)的字符串.

如果要检测IDK包括字符串开头在内的任何位置,请使用以下任一方法:

if (message.indexOf("IDK") >= 0) {
Run Code Online (Sandbox Code Playgroud)

或者,更具有惯用力:

if (message.contains("IDK")) {
Run Code Online (Sandbox Code Playgroud)