我正在网上学习这门课程,我不能真的回去因为我已经完成了23课,我不记得他们中的哪一个告诉我关于在字符串内部的东西
所以基本上就是打印出来了
Joe Bloggs 37
Sarah Smith 20
我希望名称与person1
和person2
的年龄之间有一个空格。
我将如何做到这一点?
我尝试了\n
和\t
,但我的编译器对我大吼大叫。
我仍然是初学者,所以我不明白错误信息的含义。
这是代码:
class Person {
String name;
int age;
}
public class Application {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "Joe Bloggs";
person1.age = 37;
Person person2 = new Person();
person2.name = "Sarah Smith";
person2.age = 20;
System.out.println(person1.name + person1.age);
System.out.println(person2.name + person2.age);
}
}
答案 0 :(得分:2)
另一种方法是使用
中的String.format
方法
Sytem.out.println (String.format("%s %d", person1.name, person1.age));
答案 1 :(得分:2)
你可以覆盖Person类的toString()方法,如下所示,
@Override
public String toString() {
return name + " " +age;
}
所以当你在
中打印任何Person对象时System.out.println(anyPersonObject);
它打印toString()方法的返回值。
答案 2 :(得分:1)
因为person1.name是一个字符串,而person1.age是一个int(我假设),当你打电话时:
System.out.println(person1.name + person2.age);
..实际上你将2个属性连接成一个字符串。
如果两个字段都是int,那么相同的操作将导致添加2个数字,但是在字符串中添加int将导致字符串连接。
要将两者一起添加间距,您可以调用:
System.out.println(person1.name + " " + person2.age);
这将打印person1.name,后跟空格(“”),然后是person2.age。 无论你的内容是什么,都会打印出来,所以你可以打印出一个:或者;例如。
答案 3 :(得分:1)
有格式化String的方法。
String result1 = String.format("%s %d", person1.name, person1.age);
System.out.println(result1);//Result - Bloggs 37
String result2 = String.format("%s is %d old", person1.name, person1.age);
System.out.println(result2);//Result - Joe Bloggs is 37 old
String result3 = String.format("%s\t%d", person1.name, person1.age);
System.out.println(result3);//Result - Joe Bloggs 37
我希望它可以帮到你。