当前位置: 首页 > news >正文

Java进阶学习笔记28——StringJoiner

Java中,有没有即能高效,又能实现更方便的拼接呢?

StringJoiner:

JDK8才开始的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。

好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁。

package cn.ensource.d17_stringjoiner;import java.util.StringJoiner;public class Test {public static void main(String[] args) {// 目标:掌握StringJoiner的使用。
//        StringJoiner joiner = new StringJoiner(", ");StringJoiner joiner = new StringJoiner(", ", "[", "]");joiner.add("java1");joiner.add("java2");joiner.add("java3");System.out.println(joiner.toString());System.out.println(getArrayData(new int[]{11, 22, 33}));}/*** getArrayData方法*/public static String getArrayData(int[] arr) {// 判断arr是否为nullif (arr == null || arr.length == 0) {return null;}
//        StringBuilder sb = new StringBuilder();StringJoiner joiner = new StringJoiner(", ", "[", "]");for (int i = 0; i < arr.length; i++) {joiner.add(arr[i] + "");}return joiner.toString();}
}

运行结果:

之前写过这个程序:

字符串数据排序案例(应用)
有一个字符串:“91 27 46 38 50”,请写程序实现最终输出结果是:“27 38 46 50 91”
这个题目的思路就是把字符串进行分割,然后再将每个小的字符串转成int,然后再进行排序,然后再把int数组中的每个int类型拼接成一个字符串;
package com.company;import java.util.Arrays;public class Main {public static void main(String[] args) {String s = "91 27 46 38 50";//把字符串中的数字存储到一个int类型的数组中String[] strArray = s.split(" ");for(int i=0; i<strArray.length; i++) {System.out.println(strArray[i]);}//定义一个int数组,把String数组的每一个元素存储到int数组中。int[] arr = new int[strArray.length];for(int i=0; i<arr.length; i++) {arr[i] = Integer.parseInt(strArray[i]);}//对int数组进行排序Arrays.sort(arr);//把排序后的int数组中的元素进行拼接到一个字符串,这里拼接采用Stringbuilder来实现StringBuilder sb = new StringBuilder();for(int i=0; i<arr.length; i++) {if(i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i] + " ");}}String result = sb.toString();System.out.println(result);}
}

现在再看,可以对这个程序也是可以进行优化的。

相关文章:

  • python内置函数map/filter/reduce详解
  • VLAN高级特性
  • 吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.4-3.5
  • SpringBoot如何实现跨域?
  • meinheld-gunicorn-flask VS uvicorn-gunicorn-fastapi 性能对比测试
  • OTA在线旅行社系统架构:连接世界的科技纽带
  • 在Spring Boot项目中集成和使用MQTT
  • Qt 概述
  • 什么是SPI,和API有啥区别
  • RustGUI学习(iced/iced_aw)之扩展小部件(二十七):如何使用number_input部件?
  • 嵌入式0基础开始学习 ⅠC语言(2)运算符与表达式
  • 移动云以深度融合之服务,令“大”智慧贯穿云端
  • mysql IF语句,模糊检索
  • Python——二维字典
  • MybatisPlus中自定义sql
  • 分享的文章《人生如棋》
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Android Volley源码解析
  • ESLint简单操作
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java多线程(4):使用线程池执行定时任务
  • js ES6 求数组的交集,并集,还有差集
  • js学习笔记
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • MobX
  • php的插入排序,通过双层for循环
  • 区块链将重新定义世界
  • 微信小程序实战练习(仿五洲到家微信版)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 自动记录MySQL慢查询快照脚本
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​io --- 处理流的核心工具​
  • ​如何使用QGIS制作三维建筑
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​数据链路层——流量控制可靠传输机制 ​
  • # 职场生活之道:善于团结
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $.ajax()方法详解
  • (003)SlickEdit Unity的补全
  • (1)(1.13) SiK无线电高级配置(五)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)MFC+openGL单文档框架glFrame
  • (分布式缓存)Redis分片集群
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (一)kafka实战——kafka源码编译启动
  • (杂交版)植物大战僵尸
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .htaccess 强制https 单独排除某个目录
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复