Java基础系列(基础):字符串拼接之StringJoiner!
前言
今天博主将为大家分享:Java基础系列(基础):字符串拼接之StringJoiner!不喜勿喷,如有异议欢迎讨论!首先推荐结合博主的这篇文章进行阅读===>Java系列(面试必备):简单的hashCode和equals面试题,有好多坑! 和 Java系列(面试必备):你真的了解Java中"=="和equals()的区别? 和 Java基础之String:为什么需要用stringbuffer或者StringBuilder去拼接字符串——而不用string——以及stringbuffer的基本了解
我们都知道要高效拼接字符串,应该使用StringBuilder(线程不安全)或者StringBuffer(线程安全)—类似用分隔符拼接数组的需求很常见,所以Java标准库还提供了一个StringJoiner来干这个事:
String.join():String还提供了一个静态方法join(),这个方法在内部使用了StringJoiner来拼接字符串,在不需要指定“开头”和“结尾”的时候,用String.join()更方便:
话不多说上代码
package com.test;
import java.util.StringJoiner;
/**
*
* @Description: 字符串拼接之StringJoiner
* @ClassName: StringJoinerTest.java
* @author ChenYongJia
* @Date 2019年6月27日 晚上21:16
* @Email [email protected]
*/
public class StringJoinerTest {
public static void main(String[] args) {
String[] names = { "Bob", "Alice", "Grace" };
StringBuilder sb = new StringBuilder();
sb.append("Hello ");
for (String name : names) {
sb.append(name).append(", ");
}
// 注意去掉最后的", ":
sb.delete(sb.length() - 2, sb.length());
sb.append("!");
System.out.println("很多时候,我们拼接的字符串像这样:" + sb.toString() + "\n");
// 类似用分隔符拼接数组的需求
StringJoiner sj = new StringJoiner(", ");
for (String name : names) {
sj.add(name);
}
System.out.println("类似用分隔符拼接数组的需求很常见,用StringJoiner来干这个事:" + sj.toString() + "\n");
// 指定开头和结尾
StringJoiner sj2 = new StringJoiner(", ", "Hello ", "!");
for (String name : names) {
sj2.add(name);
}
System.out.println("指定开头和结尾为Hello和!:" + sj2.toString() + "\n");
// String还提供了一个静态方法join(),这个方法在内部使用了StringJoiner来拼接字符串,
String s = String.join(", ", names);
System.out.println("在不需要指定“开头”和“结尾”的时候,用String.join()更方便:" + s + "\n");
// 使用StringJoiner构造一个SELECT语句:
String[] fields = { "name", "position", "salary" };
String table = "employee";
String select = buildSelectSql(table, fields);
System.out.println(select);
System.out
.println("SELECT name, position, salary FROM employee".equals(select) ? "测试成功" + "\n" : "测试失败" + "\n");
}
// 用于构造返回的查询sql
static String buildSelectSql(String table, String[] fields) {
String field = String.join(", ", fields);
return "SELECT " + field.toString() + " FROM " + table.toString();
}
}
输出结果
很多时候,我们拼接的字符串像这样:Hello Bob, Alice, Grace!
类似用分隔符拼接数组的需求很常见,用StringJoiner来干这个事:Bob, Alice, Grace
指定开头和结尾为Hello和!:Hello Bob, Alice, Grace!
在不需要指定“开头”和“结尾”的时候,用String.join()更方便:Bob, Alice, Grace
SELECT name, position, salary FROM employee
测试成功
最后
用指定分隔符拼接字符串数组时,使用StringJoiner或者String.join()更方便;
用StringJoiner拼接字符串时,还可以额外附加一个“开头”和“结尾”。
更多参考精彩博文请看这里:《陈永佳的博客》
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!