Java教程-Java 中的字符串连接

在 Java 中,String 串联形成一个新的 String,它是多个字符串的组合。在 Java 中有两种连接字符串的方法:
- 通过 +(字符串连接)运算符
- 通过 concat() 方法
1)通过+(字符串连接)运算符进行字符串连接
Java 字符串连接运算符 (+) 用于添加字符串。例如:
TestStringConcatenation1.java
class TestStringConcatenation1{
public static void main(String args[]){
String s="Sachin"+" Tendulkar";
System.out.println(s);//Sachin Tendulkar
}
}
输出:
Sachin Tendulkar
Java 编译器将上面的代码转换为:
String s=(new StringBuilder()).append("Sachin").append(" Tendulkar).toString();
在 Java 中,字符串连接是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串连接运算符通过将第二个操作数附加到第一个操作数的末尾来生成一个新的字符串。字符串连接运算符不仅可以连接字符串,还可以连接原始值。例如:
TestStringConcatenation2.java
class TestStringConcatenation2{
public static void main(String args[]){
String s=50+30+"Sachin"+40+40;
System.out.println(s);//80Sachin4040
}
}
输出:
80Sachin4040
注意:在字符串字面量之后,所有的 + 都将被视为字符串连接运算符。
2) 通过 concat() 方法进行字符串连接
String concat() 方法将指定的字符串连接到当前字符串的末尾。句法:
public String concat(String another)
让我们看一下 String concat() 方法的示例。
TestStringConcatenation3.java
class TestStringConcatenation3{
public static void main(String args[]){
String s1="Sachin ";
String s2="Tendulkar";
String s3=s1.concat(s2);
System.out.println(s3);//Sachin Tendulkar
}
}
输出:
Sachin Tendulkar
上面的 Java 程序使用concat()方法连接两个字符串对象s1和s2,并将结果存储到s3对象中。
在 Java 中还有一些其他可能的方法来连接字符串,
1. 使用 StringBuilder 类进行字符串连接
StringBuilder 类提供了 append() 方法来执行连接操作。append() 方法接受不同类型的参数,例如 Objects、StringBuilder、int、char、CharSequence、boolean、float、double。StringBuilder 是在 Java 中连接字符串的最流行和最快的方法。它是可变类,这意味着存储在 StringBuilder 对象中的值可以更新或更改。
StrBuilder.java
public class StrBuilder
{
/* Driver Code */
public static void main(String args[])
{
StringBuilder s1 = new StringBuilder("Hello"); //字符串1
StringBuilder s2 = new StringBuilder(" World"); //字符串2
StringBuilder s = s1.append(s2); //字符串3存储结果
System.out.println(s.toString()); //显示结果
}
}
输出:
Hello World
在上面的代码片段中,s1、s2和s被声明为StringBuilder类的对象。s存储使用append () 方法连接s1和s2的结果。
2. 使用 format() 方法连接字符串
String.format() 方法允许使用格式说明符(如 %s 后跟字符串值或对象)连接多个字符串。
字符串格式.java
public class StrFormat
{
/* 驱动代码 */
public static void main(String args[])
{
String s1 = new String("Hello"); //字符串1
String s2 = new String(" World"); //字符串2
String s = String.format("%s%s",s1,s2); //字符串3存储结果
System.out.println(s.toString()); //显示结果
}
}
输出:
Hello World
这里,使用String.format()方法将字符串s1和s2的连接结果分配给字符串对象s。format() 接受参数作为格式说明符,后跟 String 对象或值。
3. 使用 String.join() 方法连接字符串(Java 版本 8+)
String.join() 方法在 Java 版本 8 和以上所有版本中可用。String.join() 方法首先接受参数,一个分隔符和一个 String 对象数组。
StrJoin.java:
public class StrJoin
{
/* 驱动代码 */
public static void main(String args[])
{
String s1 = new String("Hello"); //字符串1
String s2 = new String(" World"); //字符串2
String s = String.join("",s1,s2); //字符串3存储结果
System.out.println(s.toString()); //显示结果
}
}
输出:
Hello World
在上面的代码片段中,String 对象s存储了String.join("",s1,s2)方法的结果。分隔符在引号内指定,后跟字符串对象或字符串对象数组。
4. 使用 StringJoiner 类的字符串连接(Java 版本 8+)
StringJoiner 类具有 String.join() 方法的所有功能。预先它的构造函数也可以接受可选参数、前缀和后缀。
StrJoiner.java
public class StrJoiner
{
/* 驱动代码 */
public static void main(String args[])
{
StringJoiner s = new StringJoiner(", "); //StringJoiner 对象
s.add("Hello"); //字符串1
s.add("World"); //字符串2
System.out.println(s.toString()); //显示结果
}
}
输出:
Hello, World
在上面的代码片段中,声明了StringJoiner 对象s并且构造函数 StringJoiner() 接受一个分隔符值。分隔符在引号内指定。add() 方法附加作为参数传递的字符串。
5. 使用 Collectors.joining() 方法的字符串连接 (Java (Java Version 8+)
Java 8 中的 Collectors 类提供了 joining() 方法,该方法以与输入元素出现时相似的顺序连接输入元素。
ColJoining.java
import java.util.*;
import java.util.stream.Collectors;
public class ColJoining
{
/* 驱动代码 */
public static void main(String args[])
{
List<String> liststr = Arrays.asList("abc", "pqr", "xyz"); //字符串数组列表
String str = liststr.stream().collect(Collectors.joining(", ")); //执行连接操作
System.out.println(str.toString()); //显示结果
}
}
输出:
abc, pqr, xyz
这里声明了一个字符串数组列表。一个字符串对象str存储Collectors.joining()方法的结果。