gpt4 book ai didi

java - 如何解析表示算术运算序列的字符串?

转载 作者:行者123 更新时间:2023-12-01 15:43:47 25 4
gpt4 key购买 nike

我正在开发一个个人项目,我想接受如下所示的用户输入:

   1.0+2.5+3--4 

并将其格式化为如下所示:

   1.0 + 2.5 + 3 - -4  

到目前为止,我正在使用 .replace("+") 到 .replace("+ ") 并对所有操作数执行此操作,但问题是它使用户输入:

  1.0 + 2.5 + 3 - - 4 

有没有办法可以用负号来实现它。我想这样做,这样我就可以将数字解析为 double ,然后进行加减运算。

我的代码:

  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

最佳答案

在这种特定情况下,您只需将 -- 替换为 + 即可处理它们:

  1. 将用户的输入作为字符串
  2. 删除所有空白
  3. 将所有 -- 替换为 +
  4. 根据需要继续解析

关于java - 如何解析表示算术运算序列的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7542628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com