Java 字符串连接

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

字符串连接(Concatenation)是将两个或多个字符串组合成一个字符串的过程。在 Java 中,有几种方法可以实现字符串连接。每种方法根据需求都有其优缺点。本实验将介绍在 Java 中实现字符串连接的各种方法。

使用 + 运算符连接字符串

在 Java 中,组合字符串的最简单方法是使用 + 运算符。+ 运算符被重载以支持字符串操作。请参考以下代码块,了解如何使用 + 运算符连接字符串。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a + " " + b;   // 使用 + 运算符连接字符串
        System.out.println(combination);    // 输出: Hello World
    }
}

使用 StringBuilder 类连接字符串

在 Java 中,另一种连接字符串的方法是使用 StringBuilder 类。StringBuilder 类提供了 append() 方法来组合两个或多个字符串。在连接字符串时,StringBuilderString 类更快。请参考以下代码块,了解如何使用 StringBuilder 类连接字符串。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuilder builder = new StringBuilder();
        builder.append(a).append(" ").append(b);   // 使用 StringBuilder 类连接字符串
        String combination = builder.toString();
        System.out.println(combination);   // 输出: Hello World
    }
}

使用 StringBuffer 类连接字符串

StringBuilder 类似,StringBuffer 也是一个可变的字符序列,并提供了 append() 方法来追加字符串。StringBuffer 是线程安全的(synchronized),这意味着多个线程不能同时访问它。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuffer buffer = new StringBuffer();
        buffer.append(a).append(" ").append(b);   // 使用 StringBuffer 类连接字符串
        String combination = buffer.toString();
        System.out.println(combination);   // 输出: Hello World
    }
}

使用 String.concat() 方法连接字符串

concat() 方法可用于连接两个字符串。该方法内部使用 StringBuilder 类来执行连接操作。请参考以下代码块,了解如何使用 concat() 方法连接字符串。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a.concat(" ").concat(b);   // 使用 String.concat() 方法连接字符串
        System.out.println(combination);   // 输出: Hello World
    }
}

使用 String.join() 方法连接字符串

String.join() 方法用于使用分隔符连接多个字符串。String.join() 的第一个参数是需要添加到字符串之间的分隔符。该方法从 Java 8 开始可用。请参考以下代码块,了解如何使用 String.join() 方法连接字符串。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.join(" ", a, b, c);   // 使用 String.join() 方法连接字符串
        System.out.println(combination);   // 输出: Hello World Java
    }
}

使用 String.format() 方法连接字符串

String.format() 方法返回一个格式化后的字符串。它的第一个参数是格式字符串,需要将字符串变量连接到该格式字符串中。它的工作方式类似于 C 语言中的 printf 函数。请参考以下代码块,了解如何使用 String.format() 方法连接字符串。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.format("%s %s %s", a, b, c);  // 使用 String.format() 方法连接字符串
        System.out.println(combination);   // 输出: Hello World Java
    }
}

使用 Arrays.toString() 方法连接字符串

Arrays.toString() 方法用于返回一个表示数组内容的字符串。请参考以下代码块,了解如何使用 Arrays.toString() 方法连接字符串数组。

import java.util.Arrays;
public class ConcatenateStrings {
    public static void main(String[] args) {
        String[] strings = {"Hello", "World", "Java"};
        String combination = Arrays.toString(strings);   // 使用 Arrays.toString() 方法连接字符串数组
        System.out.println(combination);   // 输出: [Hello, World, Java]
    }
}

使用 StringJoiner 类连接字符串

StringJoiner 类用于通过分隔符连接字符串。StringJoiner 类从 Java 8 开始可用。在以下示例中,我们将使用 StringJoiner 类通过分隔符连接三个字符串。请参考以下代码块,了解如何使用 StringJoiner 类连接字符串。

import java.util.StringJoiner;
public class ConcatenateStrings {
    public static void main(String[] args) {
        StringJoiner joiner = new StringJoiner(" ");
        joiner.add("Hello");  // 使用 StringJoiner 类连接字符串
        joiner.add("World");
        joiner.add("Java");
        String combination = joiner.toString();
        System.out.println(combination);   // 输出: Hello World Java
    }
}

使用 Collection.join() 方法连接字符串

我们也可以使用 Collections 类的 join() 方法来连接字符串列表。请参考以下代码块,了解如何使用 Collections.join() 方法连接字符串列表。

import java.util.Arrays;
import java.util.List;
import java.util.Collections;
public class ConcatenateStrings {
    public static void main(String[] args) {
        List<String> strings = Arrays.asList("Hello", "World", "Java");
        String separator = " ";
        String combination = String.join(separator, strings);   // 使用 Collections.join() 方法连接字符串列表
        System.out.println(combination);   // 输出: Hello World Java
    }
}

使用 Files.lines() 方法连接字符串

我们也可以使用 Java 8 引入的 Files.lines() 方法来连接字符串。请参考以下代码块,了解如何使用 Files.lines() 方法连接字符串。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ConcatenateStrings {
    public static void main(String[] args) {
        try {
            String combination = Files.lines(Paths.get("file1.txt"))
                                      .reduce("", (line1, line2) -> line1 + line2);
            System.out.println(combination);
        } catch (IOException exception) {
            System.out.println("Exception Occurred: " + exception);
        }
    }
}

注意: 上述代码块从名为 file1.txt 的文件中读取内容,并将其内容连接成一个字符串。

总结

总结来说,Java 中有多种连接字符串的方法。在本实验中,我们涵盖了多种方法,例如 + 操作符、StringBuilder 类、StringBuffer 类、String.concat() 方法、String.join() 方法、String.format() 方法、Arrays.toString() 方法、StringJoiner 类、Collections.join() 方法以及 Files.lines() 方法。理解每种方法的细微差别并根据需要选择合适的方法以获得预期结果是非常必要的。

您可能感兴趣的其他 Java 教程