【问题标题】:How to print 2 int(s) but not add them?如何打印 2 个 int(s) 但不添加它们?
【发布时间】:2015-03-10 10:44:08
【问题描述】:

我知道这似乎是一个愚蠢的问题(请原谅)。基本上这就是我想要做的:

int a = 5;
int b = 3;

System.out.print(a+b);

这会给我 8,但是除了在中间放置一个空字符串来打印 5 和 3(而不是将 int 转换为字符串)之外,还有其他方法吗?

非常感谢。

【问题讨论】:

  • 您想要打印53,还是想要介于53 之间的内容?并且请添加一个标签来表明这是什么语言(Java?)

标签: java string printing int addition


【解决方案1】:

试试

System.out.print(a+""+b)

System.out.print(a+" "+b) 

如果你想要它们之间的空间

【讨论】:

    【解决方案2】:

    print 方法将简单地将其参数转换为字符串并写出结果。因此,如果您想显示连接的两个数字,您需要自己通过将它们转换为字符串来执行此操作(显式或使用您已经提到的“”)。

    如果您想避免自己构建字符串,您可能需要使用 printf() 方法:

    System.out.printf("%d%d", a, b);
    

    【讨论】:

      【解决方案3】:

      Java 将始终执行算术运算符。为避免这种行为,您需要将数字转换为字符串。

      这应该适合你:

      System.out.println("" + a + b);
      

      由于开头是空字符串,Java 会将 + 解释为连接运算符,并将变量的值与空字符串连接。

      【讨论】:

      • 这会给你53,这可能不是你想要的。
      • @KeithThompson 从这个有点模糊的问题来看,这似乎是作者要求的。
      【解决方案4】:
      1. 用户显式字符串转换(不是那么优雅的解决方案):
      System.out.print(new Integer(a).toString()+b);
      1. 使用顺序调用 System.out.print(不会添加新行):
      System.out.print(a); System.out.print(b);
      1. 使用 java.lang.StringBuilder:
      导入 java.lang.StringBuilder; ... StringBuilder sb = new StringBuilder(); sb.append(a); sb.append(b); System.out.print(sb.toString());

      【讨论】:

      • 所有这些都是不必要的复杂。作者还求了一个不转成字符串的方法。
      【解决方案5】:

      需要将println方法里面的参数转换成字符串 文字,然后java编译器会将其识别为字符串并且不会添加 两个整数。

          System.out.println(a+""+b);
      

      或使用格式化方法

          System.out.format("%d%d",a,b);
      

      【讨论】:

      • 来自审核队列:我可以请求您在源代码周围添加一些上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。
      猜你喜欢
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2014-04-26
      相关资源
      最近更新 更多