`
1927105
  • 浏览: 150444 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

String split分割字符串问题

 
阅读更多

在使用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("////");

分享到:
评论

相关推荐

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

    这导致开发者在面对需要分割字符串的任务时,不得不自己编写相应的函数来实现这一功能。 #### 方法概述 本文将详细介绍一种自定义的`split()`方法,该方法可以在PB环境中使用,帮助开发者轻松地将字符串按照指定的...

    Arduino 分割字符串库,strFenGe.rar

    `strFenGe.rar` 文件提供的可能是 Arduino 的一个自定义库,用于方便地根据特定分隔符分割字符串。在这个场景中,我们主要探讨 Arduino 中如何处理字符串以及如何使用类似库进行字符串分割。 1. **Arduino String ...

    Android中Split()字符串分割特殊用法案例详解

    split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split(“$”)//$为要分割的字符 Android:分割字符串需要加上中括号split(“[$]”)//$为要分割的字符 2.特殊用法–当split()分割字符串遇上特殊...

    delphi7分割字符串

    例如,使用`RegEx.Split`函数可以方便地根据正则表达式分割字符串。 5. **忽略空字符串**:在分割过程中,可能希望跳过空的子字符串。这通常需要在处理结果时进行检查。 6. **性能优化**:对于大量数据的字符串...

    plsql分割字符串

    自定义函数`FUNCTION_SF_SPLIT_STRING`如上所示,是一个典型的用于分割字符串的函数,它接受两个参数:待分割的字符串`STRING`和用作分隔符的子字符串`SUBSTRING`,返回一个`VARCHAR2`类型的数组,其中包含了分割后...

    java 分割字符串

    下面是一个简单的例子,演示如何使用`split()`方法以空格为分隔符分割字符串: ```java public class StringDemo_11 { public static void main(String[] args) { String str = "Hello Java 分割字符串 示例"; ...

    Java分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`split()`方法来实现,该方法是Java `String`类的一个成员。在...

    JS split() 分割字符串

    - `separator`: 这是一个可选参数,表示用来分割字符串的分隔符。它可以是一个字符串或者一个正则表达式。如果省略或设置为`null`,则整个字符串会被视为一个单独的元素。 - `limit`: 可选参数,用于限制返回的子...

    fortran分割字符串和字符串替换的子程序_Fortran_

    本篇将详细介绍如何在Fortran中进行字符串的分割与替换,以帮助你更好地理解和应用这些技术。 1. **字符串分割**: 在Fortran中,没有内置的字符串分割函数,但我们可以自定义一个子程序来实现这个功能。通常,...

    使用一个字符串分割另一个字符串

    * 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...

    Java字符串分隔方法split实践

    当调用`split(regex)`时,Java会找到所有与`regex`匹配的子串,并在它们之间分割原始字符串,返回一个包含子字符串的数组。 让我们通过一个简单的例子来理解`split()`的使用: ```java String str = "Hello,World!...

    C++常用字符串分割方法实例汇总

    我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数...

    字符串分割

    在Python中,`split()`函数是用于字符串分割的主要方法。它接受一个可选参数(默认为空格)作为分隔符,返回一个由子字符串组成的列表。例如: ```python text = "Hello,World,This,Is,A,Test" result = text.split...

    VB拆分字符串,分隔字符串

    在这里,`inputString`是你想要拆分的原始字符串,`delimiter`是用于标识子字符串边界的字符或字符串。例如,如果你有一个逗号分隔的字符串,你可以这样拆分: ```vb Dim str As String = "苹果,香蕉,橙子" Dim ...

    分割字符串函数 分割字符串函数

    在编程领域,分割字符串函数是处理文本数据时非常常用的一种工具。它允许我们将一个长字符串按照特定的分隔符拆分成多个子字符串,方便我们进行后续的分析、处理或存储。这里,我们将深入探讨字符串分割函数的相关...

    详解C++的String类的字符串分割实现

    在C++编程语言中,与Java不同,标准库并没有提供内置的String类的`split`方法来方便地进行字符串分割。然而,这并不意味着我们不能实现类似的功能。当我们需要将一个字符串按照特定的分隔符切割成多个子字符串时,...

    分割字符串函数

    然后,使用 `Split` 方法按照逗号 `,` 来分割字符串,并将结果存储在名为 `resultStr` 的字符串数组中。 4. **清除列表框内容**: ```csharp lbResultStr.Items.Clear(); ``` 在向列表框添加新的项之前,先清空...

    work2_分割字符串_字符串处理_

    首先,我们来关注“分割字符串”这一主题。字符串分割是将一个长字符串依据特定的分隔符切割成多个子字符串的操作。在不同的编程语言中,这个过程有不同的实现方式。 在C语言中,`strtok()` 函数是用于分割字符串的...

    C++分割字符串的实现

    如果你使用的是C++17或更高版本,可以利用范围基础(Range-based)的特性,结合`std::views::split`来分割字符串。这是一个更现代且高效的方法,但它需要`&lt;ranges&gt;`头文件和对C++17新特性的理解: ```cpp #...

    C#对各种字符串的操作,及函数使用方法的实例

    `Split`函数用于根据指定的分隔符将字符串分割成数组。在C#中,这通过`Split`方法完成。 ```csharp string myString = "Hello, World!"; string[] parts = myString.Split(','); foreach (string part in parts) { ...

Global site tag (gtag.js) - Google Analytics