正则表达式——匹配包含“+”和“-”的字符串
Regular Expressions - match a string containing "+" and "-"
我有一个字符串,比如 1+++-3--+++++2
,其中包含 +
和 -
符号。
我想要做的是用 +
或 -
符号表示 +
和 -
部分。
如果字符串中有奇数个-
,我会用-
代替,如果是偶数,我会用+
代替。我怎样才能使用正则表达式做到这一点?
例如,我有一个数学表达式,比如 1+-+-2-+--+3
。它将被替换为 1+2-3
您可以创建一个运算符数组并使用 for
循环来计算一个字符的所有出现次数。例如:
String expression = "1+++-3--+++++2";
String[] str = expression.split("[0-9]+");
for(op : str) {
int count = 0;
for(int i =0; i < str.length(); i++)
if(op.charAt(i) == '-')
count++;
if(count % 2 == 0) {
op = "-";
}
else {
op = "+";
}
}
str[]
中修饰的单字符运算符赋值后,新表达式的写法应该比较简单
基于格式将来自该计算器示例的假设。
//assumed format for input: <any number><any number of `-` and/or `+`><any number>
// 1++---+22+--1 will be 1-22+1
String input = "1++---+22+--1";
for (String s : input.split("[^-+]+");) {
s = s.trim();
if (!"".equals(s)) {
String newStr = s.matches("[+]*-([+]*-[+]*-)*[+]*") ? "-" : "+";
input = input.replace(s, newStr);
}
}
System.out.println(input);
我有一个字符串,比如 1+++-3--+++++2
,其中包含 +
和 -
符号。
我想要做的是用 +
或 -
符号表示 +
和 -
部分。
如果字符串中有奇数个-
,我会用-
代替,如果是偶数,我会用+
代替。我怎样才能使用正则表达式做到这一点?
例如,我有一个数学表达式,比如 1+-+-2-+--+3
。它将被替换为 1+2-3
您可以创建一个运算符数组并使用 for
循环来计算一个字符的所有出现次数。例如:
String expression = "1+++-3--+++++2";
String[] str = expression.split("[0-9]+");
for(op : str) {
int count = 0;
for(int i =0; i < str.length(); i++)
if(op.charAt(i) == '-')
count++;
if(count % 2 == 0) {
op = "-";
}
else {
op = "+";
}
}
str[]
中修饰的单字符运算符赋值后,新表达式的写法应该比较简单
基于格式将来自该计算器示例的假设。
//assumed format for input: <any number><any number of `-` and/or `+`><any number>
// 1++---+22+--1 will be 1-22+1
String input = "1++---+22+--1";
for (String s : input.split("[^-+]+");) {
s = s.trim();
if (!"".equals(s)) {
String newStr = s.matches("[+]*-([+]*-[+]*-)*[+]*") ? "-" : "+";
input = input.replace(s, newStr);
}
}
System.out.println(input);