Java中两个字符串之间的间距

Java中两个字符串之间的间距,java,string,Java,String,我正在网上学习这门课程,我真的不能回去了,因为我已经完成了23节课,我不记得是哪节课告诉我在一根绳子里间隔一些东西 所以基本上是打印出来的 Joe Bloggs 37 Sarah Smith 20 我希望名字和年龄之间有一个空格,分别是person1和person2 我该怎么做呢 我试过\n和\t但我的编译器对我大喊大叫。 我还是个初学者,所以我不明白错误信息的意思 代码如下: class Person { String name; int age; } pub

我正在网上学习这门课程,我真的不能回去了,因为我已经完成了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);

    }

}

另一种方法是使用
String.format
方法,如中所示

Sytem.out.println (String.format("%s %d", person1.name, person1.age));

因为person1.name是一个字符串,person1.age是一个int(我假设),当您调用:

System.out.println(person1.name + person2.age);
。。实际上,您正在将这两个属性连接到一个字符串中

如果这两个字段都是int,那么相同的操作将导致两个数字相加,但将int添加到字符串将导致字符串串联

若要将两者加在一起并加上间距,可以调用:

System.out.println(person1.name + " " + person2.age);
这将打印person1.name,后跟空格(“”),后跟person2.age。 您的“”中的任何内容都将被打印,因此您可以打印a:或a;例如。

您可以覆盖Person类的toString()方法,如下所示

@Override 
public String toString() { 
return name + " " +age; 
} 
因此,当您在中打印任何Person对象时

System.out.println(anyPersonObject);

它会打印toString()方法返回值。

有办法格式化字符串

    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

我希望它能帮助您。

System.out.println(person1.name+“”+person1.age);哈哈,我忘了,谢谢你帮我摆脱了迷茫,我只是一时忘了。我还没做完。如果你愿意阅读,你会看到我说我仍然是一个初学者,仍然在课堂上。顺便说一句,感谢你故意不回答我的问题,并发布了一个无用的回复。你可以如下覆盖Person类的toString()方法,@override public String toString(){return name+“”+age;}所以当您在System.out.println(anyPersonObject)中打印任何Person对象时;它打印toString()方法返回值。IMHO重写
toString
是一个坏主意,因为它将您固定在该方法的单一用法中,最好用于显示调试/诊断信息。更好的办法是提供某种格式化程序。只是saying@MadProgrammer同意。但这可能是指导OP打印对象的正确方法,而不是每次仅建议属性之间的空格,如果有多个属性该怎么办。@任务然后提供一个格式化程序。如果您只想在某些时间显示“某些”属性,该怎么办。最佳实践造就完美;)-这只是我的观点,但我非常不喜欢在这个用例中覆盖
toString
,这就是我;)@如果有很多属性,那么我会选择格式化程序!!!:)但是仍然
toString
好的(一些副作用)
选项之一。