我正在Pattern.compile()和.matcher()中传递变量,但未获得所需的输出

问题描述 投票:0回答:1

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

    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class Main
    {
        private static Scanner sc = new Scanner(System.in);
        public static void main(String[] args)
        {

            String pattern,target;
            System.out.println("Enter Target String: ");
            pattern = sc.nextLine();
            System.out.println("Enter pattern to be searched: ");
            target = 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;
            //if(!m.find())return;
            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 'ab' are" + count);

        }
    }

它提供以下输出:

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

即使目标字符串中存在'ab',该代码为何也不起作用

java regex pattern-matching java.util.scanner
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.