Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 我在Pattern.compile()和.matcher()中传递变量,但没有得到所需的输出_Java_Regex_Pattern Matching_Java.util.scanner - Fatal编程技术网

Java 我在Pattern.compile()和.matcher()中传递变量,但没有得到所需的输出

Java 我在Pattern.compile()和.matcher()中传递变量,但没有得到所需的输出,java,regex,pattern-matching,java.util.scanner,Java,Regex,Pattern Matching,Java.util.scanner,我编写了一个程序,要求用户在其中搜索目标字符串和模式。它旨在找到匹配模式的位置以及它在目标字符串中出现的次数。但它始终显示未找到任何模式,即使目标字符串中存在该模式。 我已经为它编写了一个函数searchPattern() import java.util.Scanner; 导入java.util.regex.Matcher; 导入java.util.regex.Pattern; 公共班机 { 专用静态扫描仪sc=新扫描仪(System.in); 公共静态void main(字符串[]args)

我编写了一个程序,要求用户在其中搜索目标字符串和模式。它旨在找到匹配模式的位置以及它在目标字符串中出现的次数。但它始终显示未找到任何模式,即使目标字符串中存在该模式。 我已经为它编写了一个函数
searchPattern()

import java.util.Scanner;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共班机
{
专用静态扫描仪sc=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
字符串模式,目标;
System.out.println(“输入目标字符串:”);
模式=sc.nextLine();
System.out.println(“输入要搜索的模式:”);
target=sc.nextLine();
搜索模式(模式、目标);
}
公共静态无效搜索模式(字符串模式、字符串目标)
{
Pattern p=Pattern.compile(Pattern);
匹配器m=p.Matcher(目标);
整数计数=0;
//如果(!m.find())返回;
while(m.find())
{
计数++;
System.out.println(m.start()+“--”+m.end()+“--”+m.group());
}
如果(计数=0)
System.out.println(“在目标字符串中找不到您的模式”);
其他的
System.out.println(“ab”的总出现次数为“+count”);
}
}
它给出以下输出:

Enter Target String: 
ababbab
Enter pattern to be searched: 
ab
Your pattern was not found in the target string

即使目标字符串中存在'ab',为什么这段代码不起作用

您将目标和模式存储在错误的变量中

private static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {

    String pattern, target;
    System.out.println("Enter Target String: ");
    target = sc.nextLine();
    System.out.println("Enter pattern to be searched: ");
    pattern = sc.nextLine();
    searchPattern(pattern, target);
}

public static void searchPattern(String pattern, String target) {
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(target);
    int count = 0;
    while (m.find()) {
        count++;
        System.out.println(m.start() + "--" + m.end() + "--" + m.group());
    }
    if (count == 0) {
        System.out.println("Your pattern was not found in the target string");
    } else {
        System.out.println("Total occurrences of " + pattern + " are" + count);
    }
}

您存储的变量是反向的!我真是个傻瓜!