Java输出中的前导零

时间:2015-12-28 19:17:45

标签: java arrays

我有一个文件(Multiply.txt),其中包含以逗号分隔的整数对,每行一对。我想将每对中的第二个元素乘以2的最小幂,以产生大于或等于该对的第一个元素的结果,并打印每个结果。例如,给定一行包含“13,8”,我想将8乘以2 1 得到16,并打印出来。

给定此输入文件

  

13,8
  17,16

我的程序打印此输出:

  

0
  16个
  0
  32

相反,我希望

  

16
  32

如何避免打印两个零?这是我的计划:

/* Sample code to read in test cases:*/
import java.io.*;
public class Multiples_of_a_Number {
    public static void main (String[] args) throws IOException {
        File file = new File("multiple.txt");
        BufferedReader buffer = new BufferedReader(new FileReader(file));
        String line;
        while ((line = buffer.readLine()) != null) {
            line = line.trim();
            String[] power = line.split(",");
            int[] myPower = new int[power.length];
            for (int i = 0; i < power.length; i++) {
             String numberAsString = power[i];  
             myPower[i] = Integer.parseInt(numberAsString);
             System.out.println(Multiply(myPower));  
            }

        }  
    }

    public static int Multiply(int[] n){
        int t= 0;
        for (int i = 0; i < n.length; i++) {
            if(n[1] <= n[0]){
              t = n[1] * 2;

            }else {

            }
        }
        /*while (n.length < n.length-1) {
        t = (int) Math.pow(n.length, 2);
        }*/
        return t;
    }
}

2 个答案:

答案 0 :(得分:0)

如果你想做的唯一事情就是不显示零,那么只有当它不为零时才显示:

System.out.println(Multiply(myPower));  

int result = Multiply(myPower);
if (result > 0) //or != if you work with negatives
{
System.out.println(result);
}

虽然我个人高度建议您查看代码。

答案 1 :(得分:0)

您的计划至少有三个缺陷:

  1. 方法main()中的内部循环不合适。你似乎并不希望单独处理每个号码;相反,你想根据第一次,第一次处理该对的第二个元素。由于这个问题,你得到四行输出而不是两行。

  2. 方法Multiply()没有考虑第二个数字已经大于第一个数字的可能性(你必须乘以2 0的情况 == 1)。在这种情况下,它返回0。一种可能的解决方法是将局部变量t初始化为n[1]而不是0

  3. 然而,Multiply()的实施似乎更为宽泛。目前还不清楚为什么要循环遍历n的元素(或者至少为什么要在元素0处开始循环),如果结果大于n[0],则不会产生大于n[1]的结果n[0] / 2小于t。我怀疑你想要做的是将n[1]初始化为n[0],然后根据需要将其加倍,以便将结果增加到$("#removebutton").on("click", function() { var questionid = $('#questionid').val(); $.ajax({ url : '../admincontroller/getdatabasedata', type: 'DELETE', data: questionid, success: function(response) { JSON.stringify(response); alert(response.ok); } }); return false; }); 以上。那根本不是你真正在做的事情。