Java 中分割字符串的4种不同方法

培训教学 潘老师 8个月前 (09-13) 181 ℃ (0) 扫码查看

本文将学习将字符串分割为数组。拆分字符串是一项非常常见的任务,尤其是在 Web 应用程序中,当我们必须以 CSV 格式传递数据或基于其他分隔符(例如 或另一个分隔符)进行分隔$#

1. 使用纯Java

String.split()方法是分割字符串的最佳且推荐的方法。令牌以字符串数组的形式返回,这样我们就可以按照自己的意愿使用它。

以下 Java 程序使用分隔符逗号分割字符串。相当于分割一个CSV文件。

// 使用 split() 示例
String blogName = "how,to,do,in,java";
String[] tokenArray = blogName.split(",");    //["how", "to", "do", "in", "java"]

我们需要修改正则表达式以满足任何其他要求。为了忽略逗号周围的空格,我们可以使用模式“\\s,\\s”。

String[] tokenArray = blogName.split("\\s*,\\s*");

2. 使用分离器

String.split ()是非常简单的 API,适用于简单的用法。如果我们想在分割后但得出最终结果之前处理令牌,那么Splitte类是最好的。

  • 使用Splitter还可以使代码更具可读性和可重用性。我们创建一个Splitter实例并多次复用它,从而有助于实现整个应用程序的统一逻辑拆分。
  • 另一个好处是,它在构建分离器本身时还提供了一些有用的方法,消除了创建代币后的大量后续工作。

我们可以直接从maven存储库中包含Guava 。

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>17.0</version>
</dependency>

我们可以以流畅的方式创建一个Splitter实例:

Splitter niceCommaSplitter = Splitter.on(',').omitEmptyStrings().trimResults();

现在,可以根据需要在代码中的任何位置使用它。请注意,我们有两次逗号。Splitter 处理得很好并且不包含空令牌。

//Splitter 示例
Splitter niceCommaSplitter = Splitter.on(',').omitEmptyStrings().trimResults();

Iterable<String> tokensList = niceCommaSplitter.split("how,to,do,in, ,java");   

tokensList.forEach(System.out::println); //"how", "to", "do", "in", "java"

3.使用StringUtils.split()

Apache Commons Lang 的StringUtils类提供了许多有用的方法来对字符串执行常见操作,例如搜索、替换、反转或检查为空。所有操作都是null 安全的。

StringUtils .split()与上述方法非常相似,也返回String数组输出。唯一的好处是代码速度更快。

首先包含最新版本的common-lang3依赖项。

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

初始化StringUtils的构造函数采用以下参数:

//句法
split(String str, String separatorChars, int max)
  • str – 要解析的字符串,可能为空。
  • separatorChars(可选)– 用作分隔符的字符。默认值为空格。
  • max (可选)– 数组中包含的最大元素数。零或负值意味着没有限制。

以下使用StringUtils 的Java 程序通过分隔符空格分割字符串。

//StringUtils 示例
String[] tokens = StringUtils.split("how to do in java");

Assertions.assertArrayEquals(new String[]{"how", "to", "do", "in", "java"}, tokens);

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8999.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】