PrintStream 类型中的方法 println(int) 不适用于参数 (String, int, int, int)

问题描述 投票:0回答:8
public static void main(String[] args) {
    int num1 = 1;
    int num2 = 1;
    int result = num1 * num2; 
    System.out.println("%d x %d = %d\n",num1,num2,result);
}

我正在尝试打印“1 * 10 = 10”这样的表格。但是我收到错误:

PrintStream 类型中的方法 println(int) 不适用于参数 (String, int, int, int)”。

我不知道问题出在哪里,该如何改变?

java
8个回答
14
投票

尝试

System.out.println(num1+" x "+num2+" = "+result+"\n");

更新: 有些人说这种串联方法比其他方法慢。你是对的,它比较慢,但是对于这个例子来说真的很重要吗?

此方法通常用于调试,不作为最终代码的一部分,通常只在整个代码上使用一两次。

更快的方法:

System.out.printf("%d x %d = %d\n",num1,num2,result);

7
投票

您是否尝试过像这样使用

system.out.format

System.out.format("%s x %s = %s\n",num1,num2,result);

您当前使用

println
的解决方案不起作用,因为
println
无法以这种方式格式化文本输出,您必须(正如其他人所说)使用“+”运算符连接字符串。在大多数情况下它会比较慢,但出于调试目的,我不应该认为这会是一个大问题。


6
投票

printf(...)
中有一个
System.out
方法!

System.out.printf("%d x %d = %d\n",num1,num2,result);

4
投票

您使用的方法

(System.out.println
)不适用于多个参数。通过使用
,
,您可以尝试为其提供多个参数。您需要
+
运算符。

应用于您的代码,它应该看起来像这样:

System.out.println(num1 + " x " + num2 + " = " + result);

也许你应该看看这个。这是PrintStream 的文档。正如您所看到的,没有像您正在使用的方法一样(

System.out.println(String, Int, Int ,Int);
)。


4
投票

一种简单的方法是可以使用连接操作“+”而不是“,”来打印

 public static void main(String[] args) {
        // TODO Auto-generated method stub
        int result = 0;
        for(int num1 = 1;num1 < 10;num1++){
            for(int num2 = 1;num2 <10;num2++){
                result = num1 * num2; 
                System.out.println(num1+"x"+num2+"="+result);
            }
        }
    }

}

0
投票

println 如此处所述 当前接受 0 或 1 个参数,这是上述错误的原因。

如果您打算使用 println(仅),则需要连接或使用字符串格式来格式化结果:

  • 字符串格式:

    System.out.println(String.format("%d x %d = %d\n",num1,num2,result));

  • 使用 StringBuffer 进行字符串连接:

    StringBuffer resltBuffer = new StringBuffer(num1).append(" x ").append(num2).append(" = ").append(result);
        System.out.println(resltBuffer.toString());


0
投票

System.Out.println - 不接受参数 %d 等

System.Out.format - 您需要使用 format 而不是 println

保持这样:

System.out.format("%d x %d = %d",num1, num2, 结果);


-1
投票
enter code here


    int first = 20;
    int second = 30;
    System.out.println("before swap");
    System.out.println("first value :" +first);
    
    System.out.println("second value: " +second);
    first = first - second;
    second = first + second;
    first = second - first;
    
    System.out.println("after swap");
  System.out.println("first value: " +first);
    
    System.out.println("second value: " +second);

从打印语句中删除逗号

© www.soinside.com 2019 - 2024. All rights reserved.