java中的2的正则表达式

时间:2014-08-11 04:40:05

标签: java

我想知道如何编写多个2的正则表达式。

例如:

2 4 6 8 10 ..

我想忽略奇数“%”,我想分开“,”。

例如:

String.split("(?<!%{odd number}),");

3 个答案:

答案 0 :(得分:3)

你不需要一个正则表达式 - 它有点矫枉过正。

相反,您可以简单地除以2并检查余数是否为0 - 如果是,则表示您的数字是2的倍数。

获得剩余部分:

int x = 3;
int remainder = x % 2

if (remainder == 0) {
    //multiple of 2
} else {
    //not multiple of 2
}

答案 1 :(得分:0)

Martin Konecny 对于使用正则表达式来说是如此正确,这是一种矫枉过正的事情,以及其他可以实现目标的方法如下:

如果它们阻止您使用%操作数,也可以使用这种方式

<强>代码:

            try(Scanner input = new Scanner(System.in)){
            System.out.print("Enter your number to see if it is odd or even: ");
            int result = input.nextInt();
            while( result >= 2){
                result -= 2; 
            }
            if ( result == 1) {
                System.out.println("odd");

            }else
                System.out.println("even ");
        }

解释:当你得到一个奇数时,你继续从数字中减去2,否则它就是

注意:这是一个面试问题

Java 8

代码:

List<Integer> list = Arrays.asList(1,2,3,4);
        list.stream()
            .filter( i -> i%2 == 0 )
            .forEach( i -> System.out.print(" " + i));

输出:

 2 4 

答案 2 :(得分:0)

假设您的输入类似于:"%%%,%%,%%%%,%",并且您希望以["%%","%%%%"]结尾,请先在逗号上拆分:

String[] split= "%%%,%%,%%%%,%".split(",");

然后按偶数'%'过滤掉

ArrayList<String> result = new ArrayList();
for(String s:split){
    if(!s.matches("(%%)*%"))
        result.add(s);
}
System.out.println(result);