如果可以将字符串参数转换为int数组,我需要验证它。
String pattern = "(\\d+[,])+";
String test = "18,32,5,8,10";
test2.matches(pattern2) //returns false as i requires , in the end
有没有办法忽视最后一次' ,'
答案 0 :(得分:4)
使用组构造指定数字后跟(,
数字)...
\\d+(?:,\\d+)+
答案 1 :(得分:0)
此正则表达式适用于您(检查“有效数组”):
public static void main(String[] args) {
String s = "18,32,5,8,10";
System.out.println(s.matches("(?!.*,$)(?!,.*$)(\\d+(?:,|$))+"));
}
检查并失败:
答案 2 :(得分:0)
由于我不知道如何使用正则表达式,如果我在你的位置,那么这将是我这样做的方式
String test = "18,32,5,8,10";
String str[]=test.split(",");
int ar[] = new int[str.length];
for(int i = 0; i<ar.length; i++){
ar[i] = Integer.parseInt(str[i]);
}
这个代码中的问题,如果我能看到的话,调用parseInt()方法必须包装在try-catch中,因为如果你的字符串包含除digit和逗号(,)之外的值,它会抛出NumberFormatException。 p>
答案 3 :(得分:0)
数组和单个元素的正则表达式
(\d|\[(\d|,\s*)*])