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);}
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++发票四要素真伪查验、数电票查验

在数字化转型的浪潮下&#xff0c;财务管理作为企业运营的核心环节之一&#xff0c;正经历着前所未有的变革。近期&#xff0c;随着发票查验接口技术的不断成熟与创新&#xff0c;翔云发票查验接口平台为企业提供了便捷、高效的发票查验服务&#xff0c;极大地提升了企业的财税…

SpringBoot学习小结之RocketMQ

文章目录 前言一、架构设计1.1 架构图1.2 消息1.3 工作流程 二、部署2.1 单机2.2 集群 三、Springboot Producter3.1 准备3.2 pom依赖、yml 配置3.3 普通消息3.4 顺序、批量、延迟消息3.5 事务消息 四、Springboot Consumer4.1 配置4.2 普通Push消费4.3 回复4.4 集群和广播4.5 …

CompletableFuture的使用(详细)

引入 功能和灵活性&#xff1a; Future&#xff1a;是Java 5引入的接口&#xff0c;用于表示一个异步操作的未来结果。它提供了基本的异步操作支持&#xff0c;如检查是否完成、等待结果以及获取结果&#xff0c;但在处理结果、异常和组合等方面功能有限。 CompletableFuture&a…

Linux文件操作命令

马哥教育 Linux SRE 学习笔记 文件操作命令 显示当前工作目录 每个shell和系统进程都有一个当前的工作目录 CWD&#xff1a;current work directory 显示当前shell CWD的绝对路径 pwd命令: printing working directory -P 显示真实物理路径-L 显示链接路径&#xff08;默认&…

Light_Future的C++框架的套利代码读取arbitrage_strategy.cpp

1. 套利策略的初始化函数,订阅两个数据 void arbitrage_strategy::on_init(subscriber& suber) {// 向订阅者注册两个交易代码的tick接收器。suber.regist_tick_receiver(_code1, this);suber.regist_tick_receiver(_code2, this);// 获取当前交易日。uint32_t trading_d…

SpringCloud配置文件bootrap

解决方案&#xff1a; 情况一、SpringBoot 版本 小于 2.4.0 版本&#xff0c;添加以下依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-context</artifactId> </dependency> 情况二、SpringBoot…

[集群聊天服务器]----(八)群组类、群组操作接口以及业务模块之创建群组,加入群组以及群组聊天

接着上文关于[集群聊天服务器]----(七)业务模块之一对一聊天、添加好友函数、好友类以及离线消息类的剖析。本章将对创建群组&#xff0c;加入群组以及群组聊天业务进行剖析。 群类 类似于User类&#xff0c;构建了Group类 #ifndef GROUP_H #define GROUP_H#include "g…

在Windows中安装Redis

一、下载Redis github链接&#xff1a;https://github.com/redis-windows/redis-windows/releases 二、安装 解压后点击start.bat文件即可启动服务 新开一个cmd窗口进入安装了Redis的文件夹输入redis-cli.exe -h 127.0.0.1 -p 6379连接Redis&#xff0c;见如下结果便是成功&…

sql-labs靶场环境搭建(手把手保姆级教学)

文章目录 一、sql-labs靶场简介&#xff1a;二、搭建过程1、资源下载2、配置文件&#xff1b;3、访问网站4、创建数据库 三、使用PhpStudy2018原因 一、sql-labs靶场简介&#xff1a; SQL-Labs 是一个实践环境&#xff0c;旨在用于数据库和 SQL&#xff08;结构化查询语言&…

某大型制造集团企业信息化建设总体规划设计方案(67页PPT)

方案介绍&#xff1a; 随着信息技术的飞速发展&#xff0c;企业信息化建设已成为提高管理效率、增强企业竞争力的重要手段。某大型制造集团为应对市场变化、提升管理水平、优化资源配置&#xff0c;决定进行全面深入的信息化建设。本方案旨在构建一个集生产、管理、销售、物流…

Java中的IO和NIO(New IO)有什么区别?

在Java编程中&#xff0c;IO&#xff08;Input/Output&#xff09;和NIO&#xff08;New IO&#xff09;是两个重要的概念&#xff0c;它们分别代表了Java中的传统IO和新的IO库。为了全面解释这两者之间的区别&#xff0c;我们将从技术难点、面试官关注点、回答吸引力和代码举例…

【DevOps】Jenkins + Dockerfile自动部署Maven(SpringBoot)项目

环境 docker_host192.168.0.1jenkins_host192.168.0.2 jenkins_host构建完成后把jar发布到docker_host&#xff0c;再通过dockerfile自动构建镜像&#xff0c;运行镜像 1 Jenkins安装 AWS EC2安装Jenkins&#xff1a;AWS EC2 JDK11 Jenkins-CSDN博客 AWS EC2上Docker安装…

T113调试7寸RGB屏

文章目录 软硬件介绍软件板卡屏幕 调试修改内核设备树修改U-Boot设备树 测试添加启动logo其它问题总结 软硬件介绍 软件 基于Tina5.0 SDK。 板卡 韦东山的T113工业板&#xff1a; 屏幕 韦东山的7寸RGB电容触摸屏&#xff1a; 调试 修改内核设备树 打开内核设备树<…

代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点 、 面试题 02.07. 链表相交、142.环形链表II

24. 两两交换链表中的节点 题目链接&#xff1a; 24. 两两交换链表中的节点 文档讲解&#xff1a;代码随想录 状态&#xff1a;没做出来&#xff0c;没有正确更新头节点&#xff0c;因为head和cur共享引用&#xff0c;会随着cur的移动&#xff0c;丢失之前存放的节点 错误代码&…

efuse xinpian

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 xx项目需要进行efuse烧录&#xff0c;之前都是单板环境&#xff0c;现补充裸板烧录教…

Java计算时间相差多少秒/localdatetime计算时间差

1、常用的计算时间差方法&#xff1f; 【将字符串的时间转化成LocalDateTime】 String time1"2024-01-01 10:25:10";LocalDateTime starttime1 LocalDateTime.parse(time1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));【LocalDateTime计算时…

51单片机-实机演示(按键)

书接上回。http://t.csdnimg.cn/4wSSW 目录 一.按下灭&#xff0c;松开亮 二.两个按键控制两个灯 三.点一下灯开&#xff0c;在按一下关 四。优化按键消抖 1.加入bit变量 一.按下灭&#xff0c;松开亮 代码 #include <reg52.h> //此文件中定义了单片机的一些特…

自定义函数python:深入解析与实操

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;函数的命名与规范 二、函数命名&#xff1a;遵循规范&#xff0c;易于…

利用阅读APP3.0目录展示要查看的内容01

喜欢读电子书的小伙伴往往会遇到一个问题&#xff0c;就是想要看书中某些内容&#xff0c;但是不知道具体章节&#xff0c;所以就用查找功能来查&#xff0c;但是呢查找功能查出来展示的结果并不直观。 比如想要阅读:青竹蜂云剑&#xff0c;大衍决&#xff0c;南宫婉&#xff0…

【wpf】关于焦点

背景 今天踩了一个坑。我用到handycontrol中的一个密码控件PasswordBox <hc:PasswordBox x:Name"pb" hc:TitleElement.Title"密码" hc:TitleElement.TitlePlacement"Left" Width"120"></hc:PasswordBox>然后想实现一个回…