我对我必须在Java中解决的问题表示怀疑。问题是:我的程序通过控制台接收两个参数,第一个是文件的路径,我必须将此文件加载到java程序,它是一个.ini文件。第二个参数是一个代码,使用这种模式:XXX-XXXX或XXX-XXXX-XXXX其中'X'是0到9之间的数字。在第二个参数中,我的问题出现了:我必须使用数据包java.util .regex实现这种模式,我的意思是,我必须验证用户是否正确输入了参数。我怎样才能做到这一点? 我的代码中实现此功能的部分如下:提前感谢:
Pattern patron = Pattern.compile("^[0-9]{3,}"); //aqui va la regex que queremos poner
Matcher match = patron1.matcher(args[1]);
if(args.length < 2){ // el programa espera recibir dos argumentos
System.out.println("ERROR, número de argumentos inválido!");
System.exit(1); //termina el programa
} else if(args[0].endsWith("config.ini") == false){ //COMPLETAR la segunda condicion
System.out.println("ERROR, los argumentos no toman valores válidos");
System.exit(1);
}
答案 0 :(得分:1)
您可以使用以下内容:
if(args.length >= 2 && args[1] != null && args[1].matches("^\\d{3,}(\\-\\d{3,}){1,2}$"))
^
代表字符串的开头
\\d{3,}
一个重复3次或更多次的数字
(\\-\\d{3,})
由破折号组成的组和上面解释的构造
{1,2}
表示该组重复一到两次
$
字符串的结尾