[英]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.