Мне нужно небольшое изменение в выводе, помогите мне пожалуйста - PullRequest
0 голосов
/ 28 октября 2010
import java.util.regex.*;
import java.io.*;
class Patmatch{

    static String str = "";

    public static void main(String[] args){
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter name to see match");
        try{

            str = br.readLine();
        } catch(IOException e){
            System.out.println("Exception has been occurred" + e);

        }

        try{
            Patternmatch();
        } catch(NomatchException me){
            System.out.println("Exception" + me);
        }
    }

    private static void Patternmatch() throws NomatchException{

        Pattern p = Pattern.compile("ab");
        Matcher m = p.matcher(str);
        while(m.find())
            System.out.print(m.start() + " ");

        throw new NomatchException("no match");

    }
}

class NomatchException extends Exception{

    NomatchException(String s){
        super(s);
    }
}

В приведенном выше коде, когда я ввожу ab, он показывает точное положение как 0. Но также показывает исключение.Мне нужен вывод, как если бы я ввел ab, он должен показать ab.если я ввожу что-то еще, например, def, оно должно показывать исключение.Можете ли вы помочь мне?

1 Ответ

1 голос
/ 28 октября 2010

Вот измененный метод:

private static void patternMatch() throws NomatchException{

    final Pattern p = Pattern.compile("ab");
    final Matcher m = p.matcher(str);

    if(m.find()){
        System.out.print(m.group());
    } else{
        throw new NomatchException("no match");
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...