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

  • 本文关键字:输出 方法 indexOf 字符串 IDK 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");
}
}
}
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 永远不会触发

最新更新