一、Object类的toString()方法
Java中所有类都继承自Object类,而Object类中定义了toString()方法,所以所有对象都可以调用该方法将自身转换成字符串形式。当我们把一个对象传递给System.out.println()方法时,实际上调用了该对象的toString()方法。
public class Person { private String name; private int age; // getter and setter methods @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } } public class Main { public static void main(String[] args) { Person person = new Person(); person.setName("Tom"); person.setAge(18); System.out.println(person); // output: Person{name='Tom', age=18} } }
二、String类的valueOf()方法
String类中的valueOf()方法可以将任意类型的值转换为字符串。该方法有多个重载形式,可以通过传递不同类型的参数来实现类型转换。
public class Main { public static void main(String[] args) { int num = 123; String numStr = String.valueOf(num); System.out.println(numStr); // output: "123" double pi = 3.1415926; String piStr = String.valueOf(pi); System.out.println(piStr); // output: "3.1415926" char ch = 'A'; String chStr = String.valueOf(ch); System.out.println(chStr); // output: "A" } }
三、StringBuilder/StringBuffer类的append()方法
StringBuilder和StringBuffer是用于创建可变字符串的类,它们都有一个append()方法,可以将任意类型的值追加到字符串末尾。在需要频繁拼接字符串的场景下,使用StringBuilder/StringBuffer比使用"+"运算符或String类的concat()方法性能更好。
public class Main { public static void main(String[] args) { StringBuilder builder = new StringBuilder(); builder.append("Hello, "); builder.append("world!"); System.out.println(builder.toString()); // output: "Hello, world!" int num = 123; builder.append(num); System.out.println(builder.toString()); // output: "Hello, world!123" boolean flag = true; builder.append(flag); System.out.println(builder.toString()); // output: "Hello, world!123true" } }
四、使用String.format()方法
String类中提供了一个静态方法format(),可以使用类似于C语言中的printf()函数的格式化字符串来将数据转换为字符串。
public class Main { public static void main(String[] args) { int num = 123; String numStr = String.format("%d", num); System.out.println(numStr); // output: "123" double pi = 3.1415926; String piStr = String.format("%.2f", pi); System.out.println(piStr); // output: "3.14" String name = "Tom"; int age = 18; String infoStr = String.format("My name is %s, and I'm %d years old.", name, age); System.out.println(infoStr); // output: "My name is Tom, and I'm 18 years old." } }