`

关于split函数的注意点

 
阅读更多

如果

String str = "aa|bb|cc";

String[] array = str.split("\\|");

没问题。

 

如果

String str = "aa||";

String[] array = str.split("\\|");

则只能等到数组第一个元素,取第二个元素时,出现越界!!

应该用:String[] array = str.split("\\|",-1);

 

函数:public String[] split(String regex, int limit)

 

(1)limit n 大于0,则pattern(模式)应用n - 1 次

  String s = "boo:and:foo"

 s.split(":",2)

 //result is { "boo", "and:foo" }

 

(2)limit n 小于0,则pattern(模式)应用无限次

 String s = "boo:and:foo"

 s.split(":",-2)

 //result is { "boo", "and", "foo" }

 

(3)limit n 等于0,则pattern(模式)应用无限次并且省略末尾的空字串

  String s = "boo:and:foo"

 s.split("o", -2)

   //result is { "b", "", "and:f", "", "" }

   s.split("o", 0)

   //result is { "b", "", "and:f" }

 

 

 在java.lang包中有String.split()方法,返回是一个数组

 

我在应用中用到一些,给大家总结一下,仅供大家参考:

 

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

 

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

 

“.”和“|”都是转义字符,必须得加"\\";

 

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

 

使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。 

 

我们看jdk doc中说明  

 

public String[] split(String regex)

 

 Splits this string around matches of the given regular expression. 

 

参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码用竖线 | 分隔字符串,你将得不到预期的结果

 

 

 

复制代码

   String[] aa = "aaa|bbb|ccc".split("|");

 

    //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果

 

    for (int i = 0 ; i <aa.length ; i++ ) {

 

      System.out.println("--"+aa[i]); 

 

    } 

复制代码

 

 

用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

 

复制代码

    String[] aa = "aaa*bbb*ccc".split("*");

 

    //String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果    

 

    for (int i = 0 ; i <aa.length ; i++ ) {

 

      System.out.println("--"+aa[i]); 

 

    }  

复制代码

 

 

显然, + * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。

 

"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。

 

还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果,

 

String[] aa = "aaa\\bbb\\bccc".split("\\\\");

分享到:
评论

相关推荐

    oracle split函数

    在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...

    String split函数

    本文将详细介绍 String split函数的使用技巧和注意点。 String split函数的基本语法 String split函数的基本语法为:`stringObj.split([separator],[limit])`,其中`stringObj`是要被分解的 String 对象或文字,`...

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    python中split函数的用法

    Python 中 split 函数的用法 Python 中的 split 函数是一个非常重要的字符串处理函数,它可以将一个字符串按照指定的分隔符进行划分,并返回一个分割后的字符串列表。本文将详细介绍 Python 中 split 函数的用法和...

    ASP 中Split 函数的实例__1.docx

    在使用Split函数时,需要注意以下几点: 1. 在ASP中,通常不需要预先声明变量。但当处理Split函数的返回值时,应使用`Dim`而不是`ReDim`。尽管返回的是数组,但实践中`ReDim`并不适用。 2. 如果用Split函数尝试分割...

    ASP 中Split 函数的实例_.docx

    需要注意的是,如果字符串中不存在指定的分隔符,Split函数将返回一个只包含原始字符串的数组,且该数组只有一个元素。此外,尽管Split函数返回的是一个数组,但在ASP中声明返回值变量时,应使用Dim而不是ReDim,...

    js使用split函数按照多个字符对字符串进行分割的方法

    综上所述,理解并掌握如何使用JavaScript中的split()函数结合正则表达式进行多分隔符的字符串分割,对于进行有效和高效的数据处理来说,是一个非常重要的知识点。希望本文所述内容能够帮助开发者们在实际工作中解决...

    db2字符串分隔,函数,过程的使用

    当处理大量字符串数据时,注意优化查询,比如利用索引、减少函数操作等,以提高性能。同时,合理设计数据库结构,避免将多值数据存储在一个字段,可以使用关联表来存储,这样更符合数据库规范且易于管理和查询。 ...

    Split用法大全

    注意 在使用Split方法时,separator参数应该是char[]或string[],而不能是字符串。例如: ```csharp string str = "technology"; char[] separator = { 'o' }; string[] arr = str.Split(separator); ``` Split方法...

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

    Java中的`String.split()`方法是处理字符串的强大工具,它能够根据指定的分隔符将一个字符串分割成多个子字符串,并将这些子字符串存储在一个数组中。这个方法在处理文本数据时非常常见,尤其是在解析CSV格式的数据...

    js中split函数的使用方法说明

    splitsplit与join作用相反,用于把一个字符串分割成字符串数组.stringObject.split(a,b)这是它的语法. a是必须的 决定从a这分割.b不是必须的,可选。该参数可指定返回的数组的最大长度 。如果设置了该参数,返回的...

    一个线性回归模型实例,我们使用train-test-split函数将数据集拆分为训练集和测试集

    然后,我们使用train_test_split函数将数据集拆分为训练集和测试集。接下来,我们创建了一个线性回归模型实例,并在训练集上进行训练。之后,我们使用训练好的模型对测试集进行预测。最后,我们输出了模型的系数...

    python中的split()函数和os.path.split()函数使用详解

    下面将详细介绍这两个函数的使用方法和相关知识点。 首先,我们来探讨Python标准库中的split()函数。split()是字符串对象的一个方法,它用于按照指定的分隔符将字符串拆分成多个部分,并将这些部分存储在一个列表中...

    演示如何使用 split() 函数将一个包含多个单词的字符串分割成单词列表

    在阅读提供的PDF文件如"python.pdf"、"说明.pdf"、"注意.pdf"和"注意下.pdf"时,可以更深入地理解`split()`函数的细节,包括其可能遇到的问题和解决方案,以及在实际项目中的应用。 总的来说,`split()`函数是...

    mysql函数split功能实现

    需要注意的是,由于这些是用户自定义的函数和过程,它们不会像内置函数那样在所有服务器上可用,需要在每个需要使用的数据库实例上创建和调用。此外,设置`log_bin_trust_function_creators = 1`是为了允许在二进制...

    Linux里awk中split函数的用法小结

    下面我们将详细讨论`split`函数的用法及其相关知识点。 `split(s,a,sep)` 函数的作用是将字符串`s`按照分隔符`sep`拆分成多个部分,并将结果存储到数组`a`中。这里的`sep`是一个可选参数,如果没有提供,则默认使用...

    VisualBasic语言参考-函数速查_函数_VB_

    VB提供了处理数组的函数,如`UBound`和`LBound`获取数组的上界和下界,`Join`和`Split`函数用于合并和分割字符串数组。 8. **错误处理**: `Err`对象和`On Error`语句用于处理运行时错误。`On Error Resume Next`...

    ASP 中 Split 函数的实例分析

    ### ASP中Split函数的深入解析与应用实例 #### 一、Split函数简介 在ASP (Active Server Pages) 开发中,`Split` 函数是一种非常实用的工具,它主要用于将字符串按照指定的分隔符进行分割,并将结果返回为一个数组...

    常用QTP函数合集

    - **解析**:上述代码使用 `Split` 函数将多个字符串按照逗号分隔,并存储为数组形式,以便后续操作。这种处理方式常见于数据初始化阶段,为后续的测试步骤提供必要的数据支持。 ##### 2. **CloseAllBrowser 函数*...

    ae脚本 SplitLayer2.0 图层分割

    这个是SplitLayer的第二个版本,相比于第一个版本做了彻底地改变,不仅可以平均分割图层,还增加了自定义分割和随机分割,优化了内部函数,修复了剪切出现错误偏移的bug。该脚本几乎不受限制,不必非在前期操作,...

Global site tag (gtag.js) - Google Analytics