JAVA中split函数的常见用法实例

只写经常使用的,并不完整。

1.基本用法,将字符串按照指定字符串进行分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("bc");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:

a
a
defg
分隔后字符串数组长度为
3

2.需要使用多个字符进行分割:使用split("[]"),其中[]里面存放需要分割的字符,注意,现在是按照字符来分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("[bc]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:

a

a

defg
分隔后字符串数组长度为
5

原因是将b和c都当作分割的字符。

用法其实上面两条差不多就可以了,重要的是一些特殊情况:

情况1:字符串中有连续的分割符,例如2中,b也是分割符c也是分隔符,那么在分割bc时会产生一个空字符(""),n个连续的分割符会产生n-1个空字符。下面是调试时的信息:

可以看到中间产生了空字符。

情况2:分割符出现在首部,那么出现几个分割符,就有多少个空字符。例如

public class Main {
    public static void main(String[] args) {
        String ss = "aaabcabcdefg";
        String[] split = ss.split("[a]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:

bc
bcdefg
分隔后字符串数组长度为
5

前面3个a都是空字符。

情况3:有些正则表达式,这是一种特殊情况,如,*等符号需要添加转义字符\。

解决方法:

针对出现空字符,可以写一个遍历,长度为0的过滤掉。

for(String st:split){
            if(st.length()>0){
                list.add(st);
            }
        }

针对转义字符,编译器会报错,就试试添加\。

补充:Java中Split函数的用法技巧

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。

如执行:"2|33|4".split("|")

出来的结果是:

""

2

|

3

3

|

4

奇怪吧,不过注意看一下API说明还是知道原因的.

java.lang.string.split

split 方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator,[limit]])

参数

  • stringObj
    必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
  • separator
    可选项。字符串或 正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
  • limit
    可选项。该值用来限制返回数组中的元素个数。

说明

split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解

所以正常的写法是这样的:

1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 andb =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");

总结

到此这篇关于JAVA中split函数的常见用法的文章就介绍到这了,更多相关Java split函数用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java的split方法使用详解

    相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况: 大家想想下面的代码执行结果是什么 public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "a,b,c,,,a"; String str2 = "a,b,c,,,"; String str3 = "a,b,c, , ,"; String[]

  • java split()使用方法解析

    这篇文章主要介绍了java split()使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天写个程序用到java里面的split()函数时,发现可以有两个参数,之前用这个函数一直是用的一个参数,今天试了下两个参数的使用,记录一下区别. 下面是菜鸟里关于split()函数的定义 通过这个定义可以发现,第一个参数是split()函数对字符串分割的根据,第二个参数是分割的份数. 第二个参数有两种写法 一种是比较直观的,直接输入要分割的份

  • java split用法详解及实例代码

    public String[] split(String regex) 默认limit为0 public String[] split(String regex, int limit) 当limit>0时,则应用n-1次 public static void main(String[] args) { String s = "boo:and:foo"; String[] str = s.split(":",2); System.out.print(str[0]

  • 浅析Java中Split函数的用法技巧

    如执行:"2|33|4".split("|")出来的结果是:""2 33 4奇怪吧,不过注意看一下API说明还是知道原因的. java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]]) 参数 stringObj 必选项.要被分解的 String 对象或文字.该对象不会被 split 方法修改. separato

  • Java:String.split()特殊字符处理操作

    一:需要特殊处理才能使用split()方法的字符 (1)需要使用"\\"或"[ ]"才能正确使用的字符集: ( ) [ ] { \ ? * + . ^ $ | (2)栗子: String str = "a0^33$\\53\6|!?3#6&5/*6~9 MY{.3+-/}*(]6[>=<-(8"; //这里以"("为例 String str_sub1 = str.split("\\(")

  • java用split分割字符串的一个有趣现象

    下面有段代码: String str="1#2#3"; String[] strs=str.split("#"); System.out.println(strs.length); ok,上面这段代码最终输出结果是2,这没有问题,但是如果换成下面的写法呢,请看: String str="##"; String[] strs=str.split("#"); System.out.println(strs.length); 结果输

  • Java split函数拆分后变成null问题解决方案

    对于一些特殊的情况,split拆分后并没有保留全的元素 如下例子: String x ="a,,,,,,"; String []y = x.split(","); for(int i=0;i<y.length;i++){ System.out.println(y[i]); } 输出结果: 只拆分得到了第一个字母,后面默认的空字符串并没有保留. 后来想到了使用StringUtils函数,查了一下,修改为如下: String x ="a,,,,,,&qu

  • java的split方法使用示例

    复制代码 代码如下: package com.lihua.test; public class Test { /**  * @param args  */ public static void main(String[] args) { String str = "abcdefghij";  String array[] = str.split("");  for (int i = 1; i < array.length; i++) {   System.ou

  • JAVA中split函数的常见用法实例

    只写经常使用的,并不完整. 1.基本用法,将字符串按照指定字符串进行分割,例如: public class Main { public static void main(String[] args) { String ss = "abcabcdefg"; String[] split = ss.split("bc"); for(String st:split){ System.out.println(st); } System.out.println("分

  • Java中的可变参数常见用法实例总结

    本文实例讲述了Java中的可变参数常见用法.分享给大家供大家参考,具体如下: 前言: 到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法--因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了.尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到让实参数量任意变化的目的. 然而,有些方法的语义要求它们必须能接受个数可变的实参--例如著名的main方法,就需要

  • Java中汉字转拼音pinyin4j用法实例分析

    本文实例讲述了Java中汉字转拼音pinyin4j用法.分享给大家供大家参考,具体如下: 汉字转换拼音在日常开发中是个很常见的问题.例如我们伟大的12306,在地名中输入"WH",就会出现"武汉""芜湖""威海"等地名,输入"WUHU"就会出现"芜湖". Java获取汉字的拼音,pinyin4j这个库可以很好的解决这个问题. 下载地址:http://sourceforge.net/pro

  • Java中的接口和抽象类用法实例详解

    本文实例讲述了Java中的接口和抽象类用法.分享给大家供大家参考,具体如下: 在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类往往用来表征我们在对问题领域进行分析. 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象. 比如:我们要描述"水果",它就是一个抽象,它有质量.体积等

  • php中substr()函数参数说明及用法实例

    本文实例讲述了php中substr()函数参数说明及用法.分享给大家供大家参考.具体如下: string substr(string $string ,int $start [, int $length ]),它可以用于在一个较长的字符串中查找匹配的字符串或字符,$string为所要处理的字符串,$start为开始选取的位置,$length为要选取的长度. $length 为正数据从左向右读取字符. $length 为负数时就右向左读取字符. string 必需,规定要返回其中一部分的字符串.

  • js中split和replace的用法实例

    本文实例讲述了js中split和replace的用法.分享给大家供大家参考.具体分析如下: 1. split : 复制代码 代码如下: <html> <head>     <title>     从业人员继续教育报名列表--打印签到表 sdfsd</tr><tr></tr>  sdfsd     </title> </head> <body>      <script type="t

  • jquery中map函数遍历数组用法实例

    本文实例讲述了jquery中map函数遍历数组用法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

  • SQL Server中row_number函数的常见用法示例详解

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是ROW_NUMBER()函数的语法实例: select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区. ROW_NUMBER()函

  • python字典中get()函数的基本用法实例

    目录 前言 1.get()函数利用键来获取值 2.利用字典统计列表中元素出现次数 补充:和dict[key]的区别 总结 前言 以下内容均为个人笔记,仅供学习参考使用,因内容均为自己实践经验所得,个人水平有限,如有错误欢迎指正 注:编程语言为Python3 1.get()函数利用键来获取值 之前在学习python的时候,在获取值得时候常用的方法就是直接 print(dict[key]) 但这种方法中当字典中不存在该键时会返回KeyError类型错误,此时就可以用get()函数还利用键获取值 pr

  • Java中实现Comparator接口和用法实例(简明易懂)

    在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类Step package com.ljq.entity; /** * 运号单流程 * * @author Administrator * */ public class Step{ /** 处理时间 */ private String acceptTime = ""; /** 快件所在地点 */ private String

随机推荐