繁体   English   中英

java中2的倍数的正则表达式

[英]Regular expression for multiple of 2 in java

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

例如 :

2 4 6 8 10..

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

例如 :

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

您不需要为此使用正则表达式 - 这太过分了。

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

得到余数:

int x = 3;
int remainder = x % 2

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

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 

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

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

然后按偶数个'%'过滤掉

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM