Я хочу написать функцию validate()
, которая примет некоторый шаблон или регулярное выражение в качестве аргумента и попросит пользователя ввести свой выбор. Если выбор соответствует шаблону, он вернет выбор, в противном случае он попросит пользователя повторно ввести выбор.
Например, если я вызову validate()
с 123
в качестве аргумента, он вернет либо 1
, либо 2
, либо 3
в зависимости от ввода пользователя.
Но я не знаю, как используются шаблоны или регулярные выражения. Пожалуйста, помогите.
Я написал некоторый код, но я не уверен, что писать в нескольких местах.
Я хочу, чтобы функция проверки, написанная ниже, принимала входные данные 1, 2 или 3 и возвращала их.
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Pat
{
public static void main(String args[])
{
int num=validate(Pattern.compile("123"));//I don't know whether this is right or not
System.out.println(num);
}
static int validate(Pattern pattern)
{
int input;
boolean validInput=false;
do
{
try
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
input=Integer.parseInt(br.readLine());
validInput=true;
}catch(Exception e)
{
System.out.println(""+e);
}
}while(!validInput || input.matches(pattern));// This also seems like a problem.
return input;
}
}