为什么使用一个" print"而不是三个工作?

时间:2014-03-12 23:27:24

标签: java string

所以我对Java知之甚少,但我注意到这根据我的课堂笔记有用,我应该以不同的方式做到这一点

这是我的笔记

System.out.print("hello");
System.out.print(name);
System.out.print("\n");

然而,我试过这个,它也做了同样的事情。它更短,所以这是一种可接受的方式,还是会打破这条路?

System.out.print("hello"+name+"\n);

只要代码运行正常,我的老师就不应该关心吗?这是我的第一堂课,我不是计算机科学专业。

4 个答案:

答案 0 :(得分:9)

它会起作用,我认为它实际上是一种更好的方法。

去吧,那是黑客精神!

如果您想要更短且更具描述性的内容,请尝试

System.out.println("hello " + name);

println会在您打印的内容自动打印一行(' \ n')。


为了完成这一操作,我们假设name = "James Gosling";

在笔记中写的代码中,首先打印:

  

您好

然后,您打印name,这会导致:

  

helloJames Gosling

它是这样打印的,因为我们在"hello"之后实际上错过了一个空格。要使用空格打印,请使用"hello "。最后,我们打印一个换行符。

在你的(可以说是更好的)代码片段中,你只打印一次,但是当你使用表达式"hello"+name+"\n"时,你正在创建一个新的字符串,最终是相同的。这是因为+运算符连接(即 chains )两个字符串并创建一个带有结果的新字符串。

因此,当您打印结果字符串时,您会得到(加上换行符):

  

helloJames Gosling

答案 1 :(得分:4)

其他人已经对具体的例子进行了权衡,但试图概括这一点存在问题。

+在应用于原始数值时添加,而不是在应用于字符串时进行连接,所以

int x = 4;
int y = 2;
System.out.print(x);
System.out.print(y);
System.out.print("\n");

时打印42
int x = 4;
int y = 2;
System.out.println(x + y);

打印6后跟换行符。

+ associates left以来,您可以使用"" + ...强制+表示字符串连接而不是添加

int x = 4;
int y = 2;
System.out.println("" + x + y);

答案 2 :(得分:2)

在java中,加号(+)运算符是一个重载运算符。 这意味着+符号在应用于不同类型的数据时意味着不同的东西。 如果使用String对象(在这种情况下),则表示字符串连接。

因此,这行代码System.out.print("hello"+name+"\n);将String对象“hello”与String对象名称连接,然后与String对象“\ n”连接。最后,它将结果打印到标准输出。

还有其他打印方法。

System.out.println() prints the argument and then insert a new line

所以要写出相同的结果

System.out.println("hello" + name);

Java还有支持C类打印的方法System.out.printf()System.out.format()

答案 3 :(得分:1)

第一个分别写出我们的三个String个对象。第二个将( concatenates )三个字符串组合成一个字符串,然后将其写出来。

这两种方法在语法(它们是有效的Java代码)和语义(它们做正确的事情)方面同样有效。它们都产生预期的输出并且表现得彼此一样好。

我认为你的方式更具可读性,因为它具有较少重复的样板代码,所以我认为它更好。