HOWTO · Java

Java 中将布尔值转为字符串

本教程教你如何在 Java 中把布尔值转换为字符串。

本页内容

在 Java 中,基本类型 boolean 和包装类 Boolean 都表示 true 或 false。对于基本类型,可以使用 String.valueOf(boolean) 或静态重载 Boolean.toString(boolean)。对于非空的 Boolean 对象,也可以调用其实例方法 toString()。如果要将值放入较长的消息中,字符串拼接和格式化也很有用。这些转换会生成小写文本,因此 true 会变成 "true",false 会变成 "false"。

使用 String.valueOf(boolean) 将基本类型 boolean 转换为字符串

String.valueOf(boolean) 是 String 中的静态方法,接收基本类型 boolean,并返回其文本表示。如果值本身已经是基本类型,这是直接的转换方式;返回结果可以保存、比较,或传给需要 String 的方法。输入仍是布尔值,返回值则是文本;若要在后续布尔条件中使用它,必须先将其转换回来。

运行此示例:

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean active = true;
        String text = String.valueOf(active);
        System.out.println(text);
    }
}
true

这种形式也适用于 false,并会返回相应的小写字符串。如果源变量声明为 boolean,请使用基本类型重载;需要基本类型参数时,Java 也可以拆箱一个非空的 Boolean。如果包装类引用可能为 null,请先处理这种情况再将其传给需要基本类型的方法,因为对 null 拆箱会导致 NullPointerException。

使用 Boolean.toString() 将 Boolean 值转换为字符串

Boolean 是包装类,boolean 则是基本类型。非空的 Boolean 对象可以调用实例方法 toString()。该类还提供静态重载 Boolean.toString(boolean),可以直接接收基本类型,无需仅为转换而创建包装对象。示例展示了这两种形式,方便你根据现有值的类型选择。由于代码块和输出块保持原样,示例中的 Instance、Static 标签及显示结果仍为英文。

public class BooleanStringExample {
    public static void main(String[] args) {
        Boolean enabled = Boolean.FALSE;
        String instanceText = enabled.toString();
        boolean active = true;
        String staticText = Boolean.toString(active);
        System.out.println("Instance: " + instanceText);
        System.out.println("Static: " + staticText);
    }
}
Instance: false
Static: true

实例方法要求引用非空:如果 enabled 为 null,调用 enabled.toString() 会抛出 NullPointerException。静态重载通过类名调用并接收基本类型,因此不会解引用包装对象。如果收到的 Boolean 可能为 null,请在调用实例方法或进行拆箱之前确定 null 应如何处理。例如,可以先判断该引用,并在它为 null 时提供备用字符串。

通过字符串拼接将 boolean 或 Boolean 值转换为字符串

如果已经在构造字符串,Java 会在拼接时将基本类型 boolean 转换为对应的小写文本。非空的 Boolean 包装对象也会转换为对应文本。把字符串放在前面可以让标签更易读,例如 "Enabled: " + enabled。这种方式适合消息和日志;如果只需单独转换,显式调用转换方法能更清楚地表达意图。由于代码块和输出块保持原样,示例中的 Active、Enabled 等标签及显示结果仍为英文。

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean active = true;
        Boolean enabled = Boolean.FALSE;
        System.out.println("Active: " + active);
        System.out.println("Enabled: " + enabled);
    }
}
Active: true
Enabled: false

拼接 null Boolean 会生成文本 "null";它不会对该引用调用 toString()。这与 enabled.toString() 不同,后者在同一引用为 null 时会抛出 NullPointerException。构造输出时请留意这一区别:拼接会将 null 保留为单词 null,而实例方法要求实际存在 Boolean 值。如果文本将展示给用户或用于外部格式,而 null 可能造成歧义,请明确指定备用值。

使用 String.format() 将 boolean 格式化为字符串

当布尔值要放入较长的格式化消息,或消息中包含多个值时,可以使用 String.format()。它的 %b 转换符会将 Boolean 参数格式化为小写的 true 或 false;这有助于编写易读的模板,但只转换一个值时会增加额外的格式化机制。此示例将格式字符串和值放在一起,因此布尔值所在的位置一目了然。由于代码块和输出块保持原样,示例中的 Available 等标签及显示结果仍为英文。

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean available = true;
        String message = String.format("Available: %b", available);
        System.out.println(message);
    }
}
Available: true

如果只需简单转换,优先使用 String.valueOf(boolean) 或 Boolean.toString(boolean)。简短标签可以通过拼接构造;较长消息的模板结构更清晰时,则可使用 String.format()。无论选择哪种方式,都要留意源类型:基本类型始终有布尔值,而 Boolean 引用可能为 null。