【发布时间】:2011-09-24 23:31:19
【问题描述】:
我正在做一个个人项目,我想接受如下所示的用户输入:
1.0+2.5+3--4
并将其格式化为:
1.0 + 2.5 + 3 - -4
到目前为止,我正在使用 .replace("+") 到 .replace(" + ") 并为所有操作数执行此操作,但问题是它使用户输入:
1.0 + 2.5 + 3 - - 4
有没有办法可以用负号来实现。我想这样做,这样我就可以将数字解析为双精度数,然后在以后加减它们。
我的代码:
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringMan {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String check = "-a1 +a2 + a3 +-a5";
check = check.replace("--", "+");
System.out.println(check);
Pattern pattern = Pattern.compile("\\s+");
Matcher matcher = pattern.matcher(check);
boolean expr = matcher.find();
String str = matcher.replaceAll(" ");
System.out.println(str);
}
}
输出是:
-a1 +a2 - a3 +-a5
-a1 +a2 - a3 +-a5
问题是我希望输出看起来像这样: -a1 + a2 - a3 + -a5
【问题讨论】: