【问题标题】:How to get fractions from command line?如何从命令行获取分数?
【发布时间】:2021-01-04 06:08:22
【问题描述】:

我想使用命令行获取两个分数。 如java Fraction.java 2/5 1/9。

但我不知道如何阅读斜线。

有什么方法可以从命令行读取分数吗?

public static void main(String[] args) {

    String numerator = args[0];
    String slash = args[1];
    String denominator = args[2];
    
    int num = Integer.parseInt(numerator);
    int denom = Integer.parseInt(denominator);

【问题讨论】:

    标签: java command-line fractions slash


    【解决方案1】:

    java Fraction 2/5 1/9 表示 args[0]="2/5" 和 args[1]="1/9" 所以你需要像这个例子一样从每个参数中提取分子、斜线和分母。

        String numerator = args[0].substring(0,arg1.indexOf('/'));
        String slash = args[0].charAt(arg1.indexOf('/'));
        String denominator = args[0].substring(arg1.indexOf('/')+1,arg1.length());
    

    【讨论】:

      【解决方案2】:

      每个参数都被视为单个字符串,因此索引将是整个分数 例如

      for (int i = 0; i < args.length; i++) {
          String fraction = args[i];  //Would be equal to "2/5" for the first argument etc
          String parts = fraction.split("/");
          int num = Integer.parseInt(parts[0]);
          int denom = Integer.parseInt(parts[1]);
      }
      

      注意ArrayIndexOutOfBounds,例如参数等中没有“/”。

      【讨论】:

        【解决方案3】:

        您的命令行 shell 几乎可以肯定没有对分数的内置支持。所以argv[1] 将是“2/5”,argv[2] 将是“1/9”。您可能需要定义一种方法来在斜线处拆分这些数字,并将第一部分指定为分子,第二部分指定为分母。

        拆分字符串的方法有很多种——String.split() 是一个很好的起点。这将为您提供每个分数的(希望)两个字符串的数组。然后,您需要使用例如Integer.parseInt() 将分子和分母转换为数字。

        【讨论】:

        • 看起来其他一些贡献者提供了代码,让你根本没有任何工作要做;)
        猜你喜欢
        • 2013-08-23
        • 1970-01-01
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多