java中split()方法以及常见算法经典案例

 更新时间:2025年04月23日 10:09:12   作者:偏右右  
这篇文章主要介绍了java中split()方法以及常见算法的相关资料,split()方法可以根据指定的正则表达式将字符串分割成多个子字符串,并返回一个字符串数组,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、split()

1.定义

Java中split()方法可以根据指定的正则表达式将字符串分割成多个子字符串,并将结果以字符串数组的方式返回。

2.分割符种类

分割符可以是数字,任意字符,字符串,符号等。

3.重载的方法以及含义

String[] split(String regex)返回被regex分割后的字符串数组
Stirng[] split(Stirng regex,int limit)返回被regex分割后的,数组长度为limit的字符串数组

4.注意事项

a.空字符串

如果是" ",空格字符串,那输出结果将会以空格分割符分割;

如果是""空字符串,输出结果将会是单个字符的形式输出为字符串数组,长度为str.length();

public class SplitTest {
    public static void main(String []args) {
        String str="abcdef ghi";
        String[] list=str.split(" ");
        for (String s:list
             ) {
            System.out.println(s);
        }
        String[] list1=str.split("");
        for (String s:list1
        ) {
            System.out.println(s);
        }
    }
}

运行结果:

b.连续分隔符

如果字符串中有连续的分割字符,那么结果数组中将出现空字符串。(注意区分空字符串,空格字符串);

public class SplitTest {
    public static void main(String []args) {
        String str="abcdef,,ghi";
        String[] list=str.split(",");
        for (String s:list
             ) {
            System.out.println(s);
        }
    }
}

运行结果:

c.转义字符

在正则表达式中,有些字符具有特殊含义,例如:

'.', '*', '?', '^', '$', '(', '[', '{', '|', '\', '/'等。

如果需要这些字符作为普通字符进行分割,则需要进行转义;

public class SplitTest {
    public static void main(String []args) {
        String str="abc.def.ghi";
        String[] list=str.split("\\.");
        for (String s:list
             ) {
            System.out.println(s);
        }
    }
}

运行结果:

5.代码演示

public class SplitTest {
    public static void main(String []args) {
        String str="2024-3-6";
        //双引号而非单引号,参数是字符串类型,不能大意认为"-"是单个字符。
        String[] list=str.split("-");
        for(String s:list){
            System.out.println(s);
        }
        //有限字符串数组长度的重载split();
        String[] list1=str.split("-",4);//虽然为4,但是最多分割两次
        for(String s:list1){
            System.out.println(s);
        }
        //多个分割字符的情况
        String str2="abcd.efg|hijk.mno";
        String[] list2=str2.split("\\.|\\|");
        for (String s:list2
        ) {
            System.out.println(s);
        }
    }
}

运行结果:

二、经典例题

1.问题描述

用户输入“2024-8-9”,程序返回"2024-08-09".

2.思路

1.先用split()方法将字符串分割为字符串数组;

2.遍历数组,用stringbuilder存储,当存储到下一个字符时进行判断,如果字符长度为1,则拼接0,然后再拼接"-",如果不为一,则直接拼接"-".

import java.util.Scanner;

public class SplitTest {
    public static void main(String []args) {
        Scanner input=new Scanner(System.in);
        //创建stringbuilder字符串来存储动态结果;
        StringBuilder stringBuilder=new StringBuilder();
        String str=input.next();
        //使用split()方法分割字符串
        String[] list=str.split("-");
        for (int i = 0; i <list.length ; i++) {
            //如果长度为1,则拼接字符串;
            if (list[i].length()==1){
                stringBuilder.append("0");
                stringBuilder.append(list[i]);
            }else {
                stringBuilder.append(list[i]);
            }
            //除了最后一个字符串,拼接"-";
            if(i!=list.length-1){
                stringBuilder.append("-");
            }
        }
        //打印结果
        System.out.println(stringBuilder);
    }
}

3.运行结果

总结 

到此这篇关于java中split()方法以及常见算法的文章就介绍到这了,更多相关java中split()方法常见算法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android Studio中创建java工程的完整步骤

    Android Studio中创建java工程的完整步骤

    Android Studio创建java工程是非常麻烦的,因为Android Studio没有提供直接创建java工程的方法,下面这篇文章主要给大家介绍了关于Android Studio中创建java工程的完整步骤,需要的朋友可以参考下
    2024-01-01
  • java常用工具类之Excel操作类及依赖包下载

    java常用工具类之Excel操作类及依赖包下载

    这篇文章主要介绍了java常用工具类Excel操作类及依赖包下载,需要的朋友可以参考下
    2014-07-07
  • Mybatis Plus 字段为空值时执行更新方法未更新解决方案

    Mybatis Plus 字段为空值时执行更新方法未更新解决方案

    这篇文章主要介绍了Mybatis Plus 字段为空值时执行更新方法未更新解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java 精炼解读递归的概念与使用

    Java 精炼解读递归的概念与使用

    一说起递归,我想每个人都不陌生。举个从小就听过的例子:从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,要理解递归,就得先了解什么是递归,实际上这句话就是一个递归
    2022-03-03
  • Java8 forEach常用场景代码实例

    Java8 forEach常用场景代码实例

    这篇文章主要介绍了Java8 forEach常用场景代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java面试常见问题---ConcurrentHashMap

    java面试常见问题---ConcurrentHashMap

    ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment的结构和HashMap类似,是一种数组和链表结构,今天给大家普及java面试常见问题---ConcurrentHashMap知识,一起看看吧
    2021-06-06
  • 微信随机生成红包金额算法java版

    微信随机生成红包金额算法java版

    这篇文章主要为大家详细介绍了java和php版的微信随机生成红包金额算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • spring学习之创建项目 Hello Spring实例代码

    spring学习之创建项目 Hello Spring实例代码

    这篇文章主要介绍了spring学习之创建项目 Hello Spring实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Java中单例模式的七种写法示例

    Java中单例模式的七种写法示例

    作为一个Java开发者,也许你觉得自己对单例模式的了解已经足够多了,但究竟你自己了解的程度到底怎样呢?下面这篇文章主要给大家介绍了关于Java中单例模式的七种写法,需要的朋友可以参考下
    2021-09-09
  • Java文件(io)编程之记事本开发详解

    Java文件(io)编程之记事本开发详解

    这篇文章主要为大家详细介绍了Java文件(io)编程之记事本开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论