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拼接字符串时,还可以额外附加一个“开头”和“结尾”。

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


07-10 14:41