您的位置:

Java Object如何转换为String类型

一、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."
    }
}