Java打印字符串和int在同一行

时间:2017-02-18 10:41:30

标签: java

我试图在同一行上打印一个字符串和int。但是我收到了一个错误。我知道解决这个错误的方法,但为什么行MemberNetworkViewModel root = whatever; Flatten( root, node => node.MemberId, node => node.children, path => Console.WriteLine(string.Join(", ", path))); 给出了错误,而行System.out.println("This is a string: %i", c2.a);给出了正确的输出。以下是我的代码。

System.out.println("This is class method" + c2.a );

我的另一个问题是,行public class MyClass { private int a; public double b; public MyClass(int first, double second) { this.a = first; this.b = second; } // new method public static void incrementBoth(MyClass c1) { c1.a = c1.a + 1; c1.b = c1.b + 1.0; } //pass by valuye therefore no change public static void incrementA(int a) { a = a+1; } public static void main(String[] args) { MyClass c1 = new MyClass(10, 20.5); MyClass c2 = new MyClass(10, 31.5); // different code below incrementBoth(c2); incrementA(c1.a); System.out.println("This is a object passing: %i",c2.a); System.out.println("This is object passing: " + c2.a ); System.out.println("This is pass by value: %d",c1.a); } } 是否会更改c2的值,因为这里将整个对象传递给方法,而不是在incrementBoth(c2)中传递值

1 个答案:

答案 0 :(得分:4)

您需要使用printf方法,而不是println

println用于按原样打印基本类型,字符串和对象。此外,println只接受一个参数作为输入。这就是当你在代码中向它传递多个参数时出现错误的原因。

另一方面,

printf用于格式化,然后将格式化的字符串打印到标准输出/错误。这是您在上面的代码中应该使用的格式化输出。

这是reference to the tutorials

希望这有帮助!