System.out.printf不打印整数参数

时间:2015-10-28 17:04:16

标签: java string-formatting

我是java编程的新手,我在从另一个类返回一个方法时遇到了麻烦。这两个类都成功编译和运行。我可以从其中一个类调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只得到一个空格。

这是我的计算类

class calculations {
    public final int AGE = 53;
    public int numbers(int num1, int num2) {
        return num1 + num2;
    }
}

这是我的用户类。我可以打印AGE变量,但numbers()方法不返回值。这只是一个空白区域。

import java.util.Scanner;
class user {
    static Scanner input = new Scanner(System.in);

    public static void main(String args[]) {    
        int i1, i2;

        System.out.println("Enter int1: ");
        i1 = input.nextInt();

        System.out.println("Enter int2: ");
        i2 = input.nextInt();

        calculations kjc = new calculations();

        System.out.printf("Age = " + kjc.AGE);

        System.out.printf("\nints: " , i1, i2, kjc.numbers(i1, i2));

    }
}

如果有人能解释为什么System.out.printf("\nints: " , i1, i2, kjc.numbers(i1, i2));不会打印出两个输入整数的计算结果。

3 个答案:

答案 0 :(得分:5)

您正在使用printf,但您没有格式说明符。

试试这个

 System.out.printf("\nints: %d, %d, %d" , i1, i2, kjc.numbers ( i1,i2 ));

基本上,第一个字符串之后的每个参数都按顺序匹配到每个格式说明符。 %d是十进制整数的格式说明符

答案 1 :(得分:1)

为简单起见,您还可以使用以下方式进行打印:

System.out.println("\nints: ,"+ i1 +", "+i2+","+ kjc.numbers()");

答案 2 :(得分:0)

顺便说一下,您也可以使用String.format功能。

String str = String.format("I was born in %d", 2015);
System.out.println(str);