Java 把一个 List 转换为字符串

news2024/11/26 10:47:07

在本快速指南中,我们将会解释如何在 Java 把一个 List 转换为 String 字符串。

这个在某些特定的场合可能比较有用,比如说在控制台中输出 List 中的内容,转换为可以人为阅读的内容来进行调试。

使用 List 中标准的 toString() 方法

一个最简单的方法就是调用 List 中的 toString() 方法:

@Test
public void whenListToString_thenPrintDefault() {
    List<Integer> intLIst = Arrays.asList(1, 2, 3);
 
    System.out.println(intLIst);
}

上面的代码将会输出:

[1, 2, 3]

从技术上来说,上面的方法将会针对 List 中的每一个对象调用 toString() 方法来进行输出。

在上面的代码中,我们将会使用 Integer 类型的 toString() 方法来把元素中的内容来进行输出。

但是,这里会有一个问,如果你的 List 中使用的是自定义的对象的话,例如我们自定义一个 Person 对象,那么在输出的时候,你需要在 Person 对象中重写(override) toString() 这个方法,而不能使用默认的 toString() 方法。

如果你不这样做的话,你在控制台上大概率会看到下面输出内容:

[org.baeldung.java.lists.ListToSTring$Person@1edf1c96,
  org.baeldung.java.lists.ListToSTring$Person@368102c8,
  org.baeldung.java.lists.ListToSTring$Person@6996db8]
  • java.lang.Object - 类名
  • @ - 符号
  • d716361 - 哈希值的十六进制值

上面的数字不是你对象的实际内容,而是对象的十六进制哈希值。

使用 Collectors 的自定义实现

有时候,我们希望我们的输出使用特定的格式。

对比上面的例子,我们希望在输出的值之间使用 comma (,) hyphen (-), 或者方括号 ([, ]) 或者 braces ({, }) 来进行输出:

@Test
public void whenCollectorsJoining_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
    String result = intList.stream()
      .map(n -> String.valueOf(n))
      .collect(Collectors.joining("-", "{", "}"));
 
    System.out.println(result);
}

上面代码输出的内容为:

{1-2-3}

Collectors.joining() 方法需要一个 CharSequence,所以我们可以把数组对象中的整数转换为 String。

同时我们可以看到上面的方法使用了 Java 8 开始提供的 Stream,我们可以使用上面 Stream 的方法来对对象中内容进行输出。

其实主要理解就是使用了 Stream 方法,然后对 List 中的对象进行遍历。

使用其他外部类

我们还可以使用 Apache Commons’ StringUtils 类来得到同样的结果。

Maven 依赖

首先需要确保你的项目中有下面的依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

实现

实现的方法也非常简单,就是使用 StringUtils.join 就可以了。

@Test
public void whenStringUtilsJoin_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
 
    System.out.println(StringUtils.join(intList, "|"));
}

输出

1|2|3

需要注意的是,就算你使用了 StringUtils.join 方法,这个方法也还是使用的是对象内部的 toString() 方法。

如果不对自有对象的 toString() 重写(override)进行重写的话,你还是可能得到的是对象的哈希值而不是对象中具体的内容。

结论

本文对如何在 Java 中对 List 中的内容进行 String 转换并且输出进行了简单的说明。

需要注意的是对 toString() 方法,在某些时候需要进行重写(override)以便于得到正确的值。

Java 把一个 List 转换为字符串 - Java - OSSEZ在本快速指南中,我们将会解释如何在 Java 把一个 List 转换为 String 字符串。 这个在某些特定的场合可能比较有用,比如说在控制台中输出 List 中的内容,转换为可以人为阅读的内容来进行调试。 使用 List 中标准的 toString() 方法一个最简单的方法就是调用 List 中的 toString() 方法: @Testpublic void whenListToString_thenPrintD…https://www.ossez.com/t/java-list/14427

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

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

相关文章

(2)数码管

LED数码管:数码管是一种简单、廉价的显示器&#xff0c;是由多个发光二极管封装在一起组成"8"字器件 51单片机是共阴极连接 74HC245这个芯片有什么作用呢&#xff1f;解&#xff1a;这个芯片被称之为双向数据缓冲器这个芯片的作用&#xff0c;用来进行数据缓冲(提高驱…

【网络编程】详解UDP/TCP套接字的创建流程

目录 一、网络编程套接字 1、一些概念 1.1源IP地址和目的IP地址 1.2端口号port 1.3TCP和UDP的性质 1.4网络字节序、IP地址类型转换、数据接收与发送函数、popen函数 2、UDP套接字 2.1UDP服务器创建流程 2.2UDP客户端创建流程 2.3创建socket套接字 2.4绑定套接字对应…

快速找出PATH 路径下重复的命令程序文件

RT&#xff0c;就是想找出命名冲突的可执行文件。日积月累的&#xff0c;PATH 环境变量里乱七八糟堆了一堆东西&#xff0c;很可能想叫一个命令出来&#xff0c;结果实际执行的是另一个地方的程序。 Python 脚本 import ospath os.environ[PATH] folders path.split(;) fil…

理解HttpSession

什么是session 在我刚刚从事后端开发的时候&#xff0c;有一个问题困扰了我很久。 就有个玩意叫session。 PostMapping("login")public Result login(RequestParam("id") String id,RequestParam("password") String password, HttpSession se…

哈希及模拟实现

文章目录 哈希1. 哈希相关概念1.1 哈希概念1.2 哈希冲突1.3 哈希函数1.4 哈希冲突解决1.4.1 闭散列/开放定址法(1)线性探测(2) 二次探测 1.4.2 开散列/哈希桶 2. 开放定址法的实现2.1 结构2.2 插入Insert2.2.1 传统写法2.2.2 现代写法 2.3 查找Find2.4 删除Erase2.5 整体代码 3…

springcloud基于web的智慧养老平台

系统分析 可行性分析 在开发系统之前要进行系统可行性分析&#xff0c;目的是在用最简单的方法去解决最大的问题&#xff0c;程序一旦开发出来满足了用户的需要&#xff0c;所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。 1、技术可行…

一图看懂 dateutil 模块:Python datetime 模块的扩展,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 dateutil 模块&#xff1a;Python datetime 模块的扩展&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模块图&#x1f9ca;类关系…

005、数据库结构

数据库结构 1、数据库集簇逻辑结构2、对象标识符3、数据库集簇物理结构4、其它目录结构表空间物理文件位置1、数据库集簇逻辑结构 • 数据库集簇逻辑结构 数据库 : 把数据逻辑分开存放。 对象是放在数据库当中。表空间: 把数据从逻辑或者物理上分割存放2、对象标识符 Postg…

Weblogic SSRF 漏洞(CVE-2014-4210)

SSRF漏洞 ​ SSRF&#xff08;服务端请求伪造&#xff09;&#xff0c;指的是攻击者在未能取得服务器所有权限时&#xff0c;利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。 ​ 简单的说就是利用一个可…

《统计学习方法》——隐马尔可夫模型(下)

学习算法 HMM的学习&#xff0c;在有观测序列的情况下&#xff0c;根据训练数据是否包含状态序列&#xff0c;可以分别由监督学习算法和无监督学习算法实现。 监督学习算法 监督学习算法就比较简单&#xff0c;基于已有的数据利用极大似然估计法来估计隐马尔可夫模型的参数。…

详解二叉树

&#x1f308;目录 一、树形结构​ &#x1f333;1.1 概念1.2 其他概念1.3 树的表示形式 二、二叉树✨2.1 概念2.2 两种特殊二叉树2.3 性质2.4 二叉树存储 三、二叉树的基本操作&#x1f64c;3.1 前置说明3.2 二叉树的遍历3.3 二叉树的基本操作 四、二叉树的OJ✍️ 一、树形结构…

springboot+vue医院信管系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院信管系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

Service Control Manager 服务管理器简介

在windows驱动开发流程中&#xff0c;写完sys驱动binary之后&#xff0c;为了让OS能够正确的从注册表中读取到对应的信息&#xff0c;并且将其load运行起来&#xff0c;还需要编写inf文件来描述配置驱动文件。不过这也不是必须的&#xff0c;可以通过ServiceControlManager直接…

Fiddler 抓包工具 - 全网最全最细教程,没有之一

Fiddler 简介 Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大&#xff0c;是 Web 调试的利器 监控浏览器所有的 HTTP/HTTPS 流量 查看、分析请求内容细节 伪造客户端请求和服务器响应 测试网站的性能解密 HTTPS 的 Web 会话 全局…

Go语音基于zap的日志封装

zap日志封装 Zap是一个高性能、结构化日志库&#xff0c;专为Go语言设计。它由Uber开源&#xff0c;并且在Go社区中非常受欢迎。它的设计目标是提供一个简单易用、高效稳定、灵活可扩展的日志系统。 以下是Zap的一些主要特点&#xff1a; 1.高性能&#xff1a;Zap的性能非常出…

【Linux】权限的理解

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

mysql exist和in的区别

一、演示用的表 为了演示二者的区别&#xff0c;先建立两张表 user 表和 order 表 二、in 的执行情况 in在查询的时候&#xff0c;首先查询子查询的表&#xff0c;然后将内表和外表做一个笛卡尔积&#xff0c;然后按照条件进行筛选。所以相对内表比较小的时候&#xff0c;…

接口测试之Jenkins+Jmeter+Ant实现持续集成

安装Jenkins&#xff0c;见手把手教小白安装Jenkins_程序员馨馨的博客-CSDN博客 一&#xff09;Linux机器上安装Jmeter 百度一下就好 二&#xff09;Linux机器上安装Ant 1、下载安装包 进入Apache Ant - Binary Distributions&#xff0c;下载安装包&#xff0c;本次安装的是版…

高仿某东商城flutter版本,个人学习flutter项目

前言 高仿某东商城flutter版本&#xff0c;个人学习flutter项目 使用flutter_redux状态管理网络使用dio进行了简单的封装使用node项目mock服务端接口(mock_server目录)目前只实现了首页&#xff0c;其他功能持续更新… 同款Android Kotlin版本&#xff08; https://github.co…

Mysql索引底层原理及其优化方案

1.深入理解Mysql索引底层数据结构与算法 1.1索引结构 索引及其数据结构&#xff1a; 二叉树红黑树Hash表B-Tree 1.1 二叉树 说明&#xff1a;二叉树是建立数据后&#xff0c;会和第一元素进行比对&#xff0c;当比较的元素小于第一个元素时&#xff0c;此时就会走第一个元素…