所以我对Java知之甚少,但我注意到这根据我的课堂笔记有用,我应该以不同的方式做到这一点
这是我的笔记
System.out.print("hello");
System.out.print(name);
System.out.print("\n");
然而,我试过这个,它也做了同样的事情。它更短,所以这是一种可接受的方式,还是会打破这条路?
System.out.print("hello"+name+"\n);
只要代码运行正常,我的老师就不应该关心吗?这是我的第一堂课,我不是计算机科学专业。
答案 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代码)和语义(它们做正确的事情)方面同样有效。它们都产生预期的输出并且表现得彼此一样好。
我认为你的方式更具可读性,因为它具有较少重复的样板代码,所以我认为它更好。