Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在字符串中搜索指定的单词_Java_String_Contains - Fatal编程技术网

Java 在字符串中搜索指定的单词

Java 在字符串中搜索指定的单词,java,string,contains,Java,String,Contains,我想检查输入的特定单词是否在字符串中。我使用了以下代码: import java.util.*; import java.io.*; public class StringTest { public static void main(String[] args) { Scanner s = new Scanner(System.in); String s1; s1 = s.next(); String s2 = "this

我想检查输入的特定单词是否在字符串中。我使用了以下代码:

import java.util.*;
import java.io.*;

public class StringTest {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String s1;
        s1 = s.next();
        String s2 = "this is an accomplishment";
        if (s2.contains(s1)) {
            System.out.println("you have done it");

        } else
            System.out.println("try another word");
    }
}
如果我输入单词“com”,我会得到结果

你做到了

但“com”实际上只是“成就”一词的一部分。我希望这个案子的结果是

换一个词试试


因为
s2
不包含完整的单词“com”。我还尝试了
indexOf()
,但也得到了相同的结果。我应该以什么方式继续?

最好的正则表达式方法可能是

Pattern p = Pattern.compile("\\b" + Pattern.quote(s1) + "\\b");
if (p.matcher(s2).find()) { ... }

它处理单词边界和转义。请注意,编译模式不是免费的。

最好的正则表达式方法可能是

Pattern p = Pattern.compile("\\b" + Pattern.quote(s1) + "\\b");
if (p.matcher(s2).find()) { ... }

它处理单词边界和转义。请注意,编译模式不是免费的。

最好的正则表达式方法可能是

Pattern p = Pattern.compile("\\b" + Pattern.quote(s1) + "\\b");
if (p.matcher(s2).find()) { ... }

它处理单词边界和转义。请注意,编译模式不是免费的。

最好的正则表达式方法可能是

Pattern p = Pattern.compile("\\b" + Pattern.quote(s1) + "\\b");
if (p.matcher(s2).find()) { ... }
它处理单词边界和转义。请注意,编译模式不是免费的。

如果(s2.contains(s1))使用以下代码来代替

if(Pattern.compile("\\b" + s1 + "\\b").matcher(s2).find())
确保
导入java.util.regex.Pattern

它将在
s2
中搜索与
s1
匹配的整个单词。有关更多信息,请参见以下页面:

  • -编译正则表达式
  • -获取一个
    匹配器
    ,以搜索指定字符串中的正则表达式
  • -如果找到匹配项,则返回true
或者,您可以使用

if(s2.matches(".*\\b" + s1 + "\\b.*"))
如果(s2.包含(s1))
,请使用以下代码代替

if(Pattern.compile("\\b" + s1 + "\\b").matcher(s2).find())
确保
导入java.util.regex.Pattern

它将在
s2
中搜索与
s1
匹配的整个单词。有关更多信息,请参见以下页面:

  • -编译正则表达式
  • -获取一个
    匹配器
    ,以搜索指定字符串中的正则表达式
  • -如果找到匹配项,则返回true
或者,您可以使用

if(s2.matches(".*\\b" + s1 + "\\b.*"))
如果(s2.包含(s1))
,请使用以下代码代替

if(Pattern.compile("\\b" + s1 + "\\b").matcher(s2).find())
确保
导入java.util.regex.Pattern

它将在
s2
中搜索与
s1
匹配的整个单词。有关更多信息,请参见以下页面:

  • -编译正则表达式
  • -获取一个
    匹配器
    ,以搜索指定字符串中的正则表达式
  • -如果找到匹配项,则返回true
或者,您可以使用

if(s2.matches(".*\\b" + s1 + "\\b.*"))
如果(s2.包含(s1))
,请使用以下代码代替

if(Pattern.compile("\\b" + s1 + "\\b").matcher(s2).find())
确保
导入java.util.regex.Pattern

它将在
s2
中搜索与
s1
匹配的整个单词。有关更多信息,请参见以下页面:

  • -编译正则表达式
  • -获取一个
    匹配器
    ,以搜索指定字符串中的正则表达式
  • -如果找到匹配项,则返回true
或者,您可以使用

if(s2.matches(".*\\b" + s1 + "\\b.*"))

特别是,请注意contains()的作用。如果字符串中存在序列,则匹配。它无法区分该字符串中的单独单词。只要“com”出现在该字符串的任何位置,contains()就会返回true。您希望它只匹配整个单词,而contains()不匹配

如果给定字符串被空格或标点符号包围,则可以使用正则表达式进行匹配。请在上尝试Java教程

或者,更简单地说,您可以将字符串沿空格分开。String方法split()或其他扫描程序可以轻松地完成此操作。这将为您提供单个单词,Scanner类称为“tokens”,作为String类的实例。之后,使用equals()代替contains()。正则表达式也可以做到这一点,但一开始学习它们会更加累人(但完全值得)

特别是,请注意contains()的作用。如果字符串中存在序列,则匹配。它无法区分该字符串中的单独单词。只要“com”出现在该字符串的任何位置,contains()就会返回true。您希望它只匹配整个单词,而contains()不匹配

如果给定字符串被空格或标点符号包围,则可以使用正则表达式进行匹配。请在上尝试Java教程

或者,更简单地说,您可以将字符串沿空格分开。String方法split()或其他扫描程序可以轻松地完成此操作。这将为您提供单个单词,Scanner类称为“tokens”,作为String类的实例。之后,使用equals()代替contains()。正则表达式也可以做到这一点,但一开始学习它们会更加累人(但完全值得)

特别是,请注意contains()的作用。如果字符串中存在序列,则匹配。它无法区分该字符串中的单独单词。只要“com”出现在该字符串的任何位置,contains()就会返回true。您希望它只匹配整个单词,而contains()不匹配

如果给定字符串被空格或标点符号包围,则可以使用正则表达式进行匹配。请在上尝试Java教程

或者,更简单地说,您可以将字符串沿空格分开。String方法split()或其他扫描程序可以轻松地完成此操作。这将为您提供单个单词,Scanner类称为“tokens”,作为String类的实例。之后,使用equals()代替contains()。正则表达式也可以做到这一点,但一开始学习它们会更加累人(但完全值得)

特别是,请注意contains()的作用。如果字符串中存在序列,则匹配。它无法区分该字符串中的单独单词。只要“com”出现在该字符串的任何位置,contains()就会返回true。你希望它能匹配整个单词o