Java字符串中有多个分隔符的处理方式

 更新时间:2025年05月19日 10:29:57   作者:CnLg.NJ  
这篇文章主要介绍了Java字符串中有多个分隔符的处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

若字符串中存在多个分隔符,你可以使用正则表达式来定义分隔符,从而对字符串进行分割。

下面详细介绍几种常见的处理方式。

方法一:使用正则表达式分割字符串

在 Java 里,String 类的 split 方法能够接收一个正则表达式作为分隔符。

你可以把多个分隔符组合成一个正则表达式。

例如,若要以空格、逗号和分号作为分隔符,可以使用正则表达式 [ ,;]

以下是示例代码:

public class SplitStringWithMultipleDelimiters {
    public static void main(String[] args) {
        String input = "apple, banana; cherry orange";
        // 使用正则表达式 [ ,;] 作为分隔符
        String[] parts = input.split("[ ,;]");

        for (String part : parts) {
            if (!part.isEmpty()) {
                System.out.println(part);
            }
        }
    }
}    

代码解释

  • input.split("[ ,;]")[ ,;] 是一个字符类正则表达式,表示匹配空格、逗号或分号。split 方法会根据这个正则表达式将字符串分割成多个部分。
  • if (!part.isEmpty()):由于分割后可能会产生空字符串,所以使用该条件过滤掉空字符串。

方法二:使用 Pattern 和 Matcher 类

你也可以使用 java.util.regex 包中的 PatternMatcher 类来手动处理分割逻辑,这种方式更灵活,能处理更复杂的情况。

以下是示例代码:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SplitStringWithPatternMatcher {
    public static void main(String[] args) {
        String input = "apple, banana; cherry orange";
        // 定义正则表达式,匹配分隔符
        Pattern pattern = Pattern.compile("[ ,;]");
        Matcher matcher = pattern.matcher(input);

        List<String> parts = new ArrayList<>();
        int startIndex = 0;
        while (matcher.find()) {
            int endIndex = matcher.start();
            if (endIndex > startIndex) {
                parts.add(input.substring(startIndex, endIndex));
            }
            startIndex = matcher.end();
        }
        if (startIndex < input.length()) {
            parts.add(input.substring(startIndex));
        }

        for (String part : parts) {
            System.out.println(part);
        }
    }
}    

代码解释

  • Pattern.compile("[ ,;]"):编译一个正则表达式,用于匹配空格、逗号或分号。
  • Matcher matcher = pattern.matcher(input):创建一个 Matcher 对象,用于在输入字符串中查找匹配的分隔符。
  • while (matcher.find()):循环查找输入字符串中的分隔符,每次找到分隔符后,提取分隔符之前的子字符串并添加到 parts 列表中。
  • if (startIndex < input.length()):处理最后一个分隔符之后的子字符串。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现双向循环链表

    Java实现双向循环链表

    这篇文章主要为大家详细介绍了Java实现双向循环链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • SpringCloud配置动态更新原理解析

    SpringCloud配置动态更新原理解析

    在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,Spring Cloud作为微服务架构中的佼佼者,其动态配置更新的能力尤为引人注目,本文给大家介绍了SpringCloud配置动态更新原理,需要的朋友可以参考下
    2025-01-01
  • java仅用30行代码就实现了视频转音频的批量转换

    java仅用30行代码就实现了视频转音频的批量转换

    这篇文章主要介绍了java仅用30行代码就实现了视频转音频的批量转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Spring Boot集成spring-boot-devtools开发时实现热部署的方式

    Spring Boot集成spring-boot-devtools开发时实现热部署的方式

    这篇文章主要介绍了Spring Boot集成spring-boot-devtools开发时实现热部署的方式,文中还给大家提到了spring boot 实现热部署的方式及集成注意事项,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • 浅谈HashMap中7种遍历方式的性能分析

    浅谈HashMap中7种遍历方式的性能分析

    本文先从HashMap的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析HashMap各种遍历方式的优势与不足
    2021-06-06
  • Java Map 在put值时value值不被覆盖的解决办法

    Java Map 在put值时value值不被覆盖的解决办法

    这篇文章主要介绍了Java Map 在put值时value值不被覆盖的解决办法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • 最新IntelliJ IDEA 2022配置 Tomcat 8.5 的详细步骤演示

    最新IntelliJ IDEA 2022配置 Tomcat 8.5 的详细步骤演示

    这篇文章主要介绍了IntelliJ IDEA 2022 详细配置 Tomcat 8.5 步骤演示,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 解读过滤器(Filter)和拦截器(Interceptor)的使用

    解读过滤器(Filter)和拦截器(Interceptor)的使用

    这篇文章主要介绍了过滤器(Filter)和拦截器(Interceptor)的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Mybatis如何开启控制台打印sql语句

    Mybatis如何开启控制台打印sql语句

    在SpringBoot与Mybatis整合开发中,开启控制台SQL语句打印是一个常见需求,有助于调试与性能优化,方法一:在Mybatis配置文件mybatis-config.xml中添加设置;方法二:在SpringBoot配置文件application.yml或properties中
    2024-11-11
  • 关于JWT之token令牌认证登录

    关于JWT之token令牌认证登录

    这篇文章主要介绍了关于JWT之token令牌认证登录,使用JWT能够保证Token的安全性,且能够进行Token时效性的检验,使用JWT时,登录成功后将用户信息生成一串令牌字符串,需要的朋友可以参考下
    2023-05-05

最新评论