我想知道如何编写多个2的正则表达式。
例如:
2 4 6 8 10 ..
我想忽略奇数“%”,我想分开“,”。
例如:
String.split("(?<!%{odd number}),");
答案 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);