`
longzhu007
  • 浏览: 48092 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

String 中的split()

阅读更多
一个同事这样使用split方法:
String s = "ab|cd";
String[] array = s.split("|");
System.out.println(Arrays.toString(array));
输出:
[, a, b, |, c, d]

把"|"改为":"
String s = "ab:cd";
String[] array = s.split(":");
System.out.println(Arrays.toString(array));
输出:
[ab, cd]

有人据此得出split方法有问题,其实这是RegEx的问题,使用者不了解RegEx,其实这是因为"|"是RegEx中的元符号,不能直接利用,需要转义符号"\"
修改如下:

String s = "ab|cd";
String[] array = s.split("\\|");//java中是需要两个"\"
System.out.println(Arrays.toString(array));
输出:
[ab, cd]

其实我们可以仔细阅读java的api文档,文档中明确说明这个参数字符串是RegEx型的,不是一个普通的字符串

所以呢,程序员需要对RegEx有较好的认识,否则在处理字符串的时候会碰到许多莫名其妙的错误,要么,就自己写那些效率低下的代码。
分享到:
评论
13 楼 floger 2009-03-10  
longzhu007 写道
一个同事这样使用split方法:
String s = "ab|cd";
String[] array = s.split("|");
System.out.println(Arrays.toString(array));
输出:
[, a, b, |, c, d]

把"|"改为":"
String s = "ab:cd";
String[] array = s.split(":");
System.out.println(Arrays.toString(array));
输出:
[ab, cd]

有人据此得出split方法有问题,其实这是RegEx的问题,使用者不了解RegEx,其实这是因为"|"是RegEx中的元符号,不能直接利用,需要转义符号"\"
修改如下:

String s = "ab|cd";
String[] array = s.split("\\|");//java中是需要两个"\"
System.out.println(Arrays.toString(array));
输出:
[ab, cd]

其实我们可以仔细阅读java的api文档,文档中明确说明这个参数字符串是RegEx型的,不是一个普通的字符串

所以呢,程序员需要对RegEx有较好的认识,否则在处理字符串的时候会碰到许多莫名其妙的错误,要么,就自己写那些效率低下的代码。

12 楼 laodizhuq 2009-03-10  
如果不需要正则表达式,最要不要使用此方法,这个方法因为使用了正则表达式,效率是非常低的,建议自己实现这个方法。
11 楼 q472732639 2009-03-05  
还有"." 用这个也不行
10 楼 spsmysp 2009-03-04  
作为菜鸟。学习了~谢谢楼主
9 楼 kjj 2009-03-03  
引用

讨厌java的split的人,可以用indexof自己做个split,保证传什么,就用什么分解字串。。。

这有什么可讨厌的,正则分割比用index 强大多了,不会用别说人家的工具不好
=================================================================

不看函数提示的后果
8 楼 duduli 2009-03-03  
以前没怎么注重过的,但是“|”是个操作符这是肯定的。
如果自己除了这样的问题话。或许会到Google上找找答案。
不过现在楼主把经验分享出来了。
留存。
7 楼 叩舷而歌 2009-03-03  
谢谢lz分享的经验。
6 楼 ych19850810 2009-03-03  
不错 以后用split的时候会小心用'|'
5 楼 sdh5724 2009-03-03  
String 方法里面现在类似的都是REGEXPR了吧。
4 楼 kekeemx 2009-03-03  
转义是基础。
3 楼 iriver103 2009-03-03  
canyon 写道
讨厌java的split的人,可以用indexof自己做个split,保证传什么,就用什么分解字串。。。

有现成的来用多好,不就是要注意一些小细节吗?不用这样吧.
2 楼 canyon 2009-03-03  
讨厌java的split的人,可以用indexof自己做个split,保证传什么,就用什么分解字串。。。
1 楼 val831201 2009-03-03  
哎呀,学到了!前两天我还用"|"来分割字符串的呢,那岂不是很糟糕?
有没有可能我先判断出这种类型的字符,然后在用来做分隔符时转成"\\|"这种格式呢?

相关推荐

    String.split()方法使用总结

    在Java编程语言中,`String.split()`方法是一个非常实用且强大的工具,用于将字符串分割成字符串数组,基于正则表达式或指定的分隔符。这个方法为处理文本数据提供了极大的灵活性,尤其在解析CSV文件、配置文件或者...

    String类的intern、split方法

    String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...

    java的String[] split 示例

    在Java编程语言中,`String`类提供了许多用于操作字符串的方法,其中之一便是`split`方法。这个方法在处理文本数据时极为有用,特别是在需要根据特定的分隔符将字符串分割成多个子串的情况下。下面,我们将深入探讨`...

    SQL server中实现类似split功能的函数

    在SQL Server中,"split功能"通常指的是将一个字符串拆分成多个部分,这在处理以特定分隔符分隔的数据时非常有用。SQL Server并没有内置的`SPLIT`函数,但可以通过其他方式来实现这个功能。下面我们将详细介绍如何在...

    String split函数

    String split函数是 Java 中 String 类的一种常用函数,用于将一个字符串分割为子字符串,并将结果作为字符串数组返回。在实际开发中,String split函数经常被用于数据处理和字符串操作。本文将详细介绍 String ...

    public static String[] split(String s, String regex)

    public static String[] split(String s, String regex) s参数为待拆分字符串, regex参数有两种格式: 单字符的字符串(长度1),功能如下:split(“ab#12#453”, “#”) 返回带5个元素的数组:ab, #, 12, #, 453 ...

    Java中String.split()用法小结

    Java中的`String.split()`方法是用于将一个字符串按照指定的分隔符进行切割,返回一个字符串数组。这个方法是基于正则表达式的,因此在处理某些特殊字符时需要注意字符的转义。 1. **基本用法** `String.split()`...

    split_string

    split string

    power-split:有时string.split()还不够!

    功率分配因为有时String.split()还不够! 这是一个小型的Typescript库,我出于无奈而从头开始编写了命令行解析器。 它提供了一些实用程序方法来解决一些用例,而这些用例String.split()调用将无法解决。它能做什么?...

    C#中Split用法详细介绍

    在C#编程语言中,`Split`方法是一个非常实用的功能,它允许我们将一个字符串分割成多个子字符串,每个子字符串都是由指定的分隔符所界定的。在本文中,我们将详细探讨`Split`方法的各种用法,以及如何在不同场景下...

    浅谈java String.split丢失结尾空字符串的问题

    在Java编程语言中,`String`类提供了许多实用的方法,其中之一就是`split()`。这个方法用于根据指定的分隔符将字符串分割成多个子字符串,并返回一个字符串数组。然而,有时候开发者可能会遇到一个问题,即使用`...

    C# 中string.split用法详解

    string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 第二种方法 我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对...

    C#中Split用法

    `Split`方法定义于`System.String`类中,它允许用户通过不同的分隔符将字符串拆分成子字符串。这些子字符串会被存储在一个数组中以便进一步处理。 #### 二、基本用法 `Split`方法可以接受多种类型的分隔符,包括...

    pb分割字符串,自己写的split()方法

    通过本文的介绍,我们可以看到,在PB环境中自定义`split()`方法不仅能够解决实际开发中遇到的问题,而且其设计简洁实用,易于理解和使用。这种方法不仅可以提高开发效率,还能帮助开发者更好地组织和处理数据。希望...

    String_Split.scl

    西门子1200PLC字符串分割函数,采用SCL语言写,通过“外部源文件”添加到项目中,然后对该文件右键--选择“由源生成块”即生成该函数。

    string-split.js:柯里化的 `String.prototype.split` 支持按字符串、RegExp 或函数进行拆分

    柯里化的String.prototype.split支持按字符串、正则表达式或函数进行拆分。 npm install string-split --save npm 统计信息 例子 要求 var split = require ( 'string-split' ) ; 完整的应用程序 split ( "." , ...

Global site tag (gtag.js) - Google Analytics