繁体   English   中英

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

[英]The method println(int) in the type PrintStream is not applicable for the arguments (String, int, int, int)

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)”。

我不知道是什么问题,我应该如何改变它?

尝试

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

更新:你们中的一些人说这种连接方法比其他方法慢。 你是对的,它比较慢,但是对于这个例子真的很重要吗?

这种方法通常用于调试,而不是作为最终代码的一部分,并且通常只对整个代码进行一次或两次。

更快的方法:

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

您是否尝试过像这样使用system.out.format

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

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

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

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

您使用的方法(System.out.println ) 不适用于多个参数。 通过使用,你尝试给它多个参数。 您需要+运算符。

应用于您的代码,它应该如下所示:

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

也许你应该看看这个 这是 PrintStream 的文档。 如您所见,没有像您使用它的方法( System.out.println(String, Int, Int ,Int); )。

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

 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);
            }
        }
    }

}

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

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

  • 字符串格式: System.out.println(String.format("%dx %d = %d\n",num1,num2,result));

  • 使用 StringBuffer 进行字符串连接: StringBuffer resltBuffer = new StringBuffer(num1).append(" x ").append(num2).append(" = ").append(result); System.out.println(resltBuffer.toString()); StringBuffer resltBuffer = new StringBuffer(num1).append(" x ").append(num2).append(" = ").append(result); System.out.println(resltBuffer.toString());

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);

从打印语句中删除逗号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM