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);
}
}
您存储的变量是反向的!我真是个傻瓜!