【问题标题】:Using delimiters to parse a square root equation使用定界符解析平方根方程
【发布时间】:2014-05-01 03:29:16
【问题描述】:

我在使用分隔符时遇到问题。

我想解析一个包含平方根符号的字符串。我只想解析数字,忽略平方根符号。为什么下面的代码不起作用?

double num = Double.parseDouble(display.getText()).useDelimiter("\u221A");

这样,如果我的 display.getText() = √9.0,我的变量 num = 9.0。因为我已经丢弃了平方根符号。

关于我如何做到这一点的任何意见?感谢您的帮助!

【问题讨论】:

  • 代码怎么不起作用?你看到了什么结果?
  • 为什么不在解析这个之前去掉平方根号?
  • 我收到一个编译错误,提示无法取消引用双精度
  • 嗯,是的。因为您试图在不是对象的东西上调用方法。因此,与其尝试调用useDelimiter,不如在解析之前删除平方根号?

标签: java parsing double delimiter


【解决方案1】:

您可以简单地将 √ 替换为空字符串

double num = Double.parseDouble(display.getText().replace("\u221A", ""));

【讨论】:

    【解决方案2】:

    您可以使用 String.replace 方法并替换平方根。 replaceAll 接受一个字符序列,所以你可以用它来替换平方根的字符

    String numberValue= input.replace("\u221A","");

    【讨论】:

      【解决方案3】:

      试试这个:我在命令行上输入了这个,它可以工作:java Square 3√9.03√500√64321√3.14,它可以工作。 :D 基本上我使用字符串类split() 方法来解析命令行上的输入。你可以在 GUI 中使用split()

      做类似的事情
          import java.util.*;
      
          public class Square { 
      
      
           static public void main(String[] args) { 
      
          ArrayList<String> aL = new ArrayList<>();
      
          StringBuilder sb = new StringBuilder();
      
          for(int i=0; i<args.length; i++) { 
      
              aL.add(args[i]);
      
          } 
      
          for(int j=0; j<aL.size(); j++) { 
      
              sb.append(aL.get(j));
      
      
      
          }
      
          String realS = sb.toString();
      
          String[] s1 = realS.split("\u221A");
      
      
          for(int e=0; e<s1.length; e++) { 
              double num = Double.parseDouble(s1[e]);
              System.out.println("num equals: " + num);
          }
      
      }
      
      
      
      
      
      
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-23
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 2014-03-07
        相关资源
        最近更新 更多