`

string split的用法

    博客分类:
  • JAVA
 
阅读更多

1. 有时候需要使用某些字符来作为值的合并存储,比如以@作为分隔符, 232332@232323@323232, 用一个属性存储这3个值, 用的时候再拿出来split就可以了.

2. 问题是有时候某个值会缺失,比如第一个值没有的情况, @232323@323232  第2,3个值没有的情况 232332@@ ,当然也期望是能返回3个值,只是后边2个值为空字符就行了。

事实上,结果不是这样,即使 2,3个值没有的情况 232332@@  也只返回第1个值,数组大小是1. 这就让人很迷惑,明明有分隔符,为什么当看不到呢?所以再编程时要注意.

split是惰性搜索, 后边如果没有值存在就当没有结果,但是如果只有第3个值,确实能返回数组大小是3的,前两个是空字符串. 也就是split遵循一个原则,返回结果和数组所在

索引一定是对应着的最少数组.

3. Java的这种做法会令写手写C++ split的人抓狂, 做C++切换Java时要注意.

4. 也就是说String的split 即使指定了分隔符个数也不能得到固定的分割个数.

 

情况1.

 

  1. String value = "\n\n2";  
  2.         String[] names = value.split("\n");  
  3. for (int i = 0; i < names.length; i++) {  
  4.             System.out.println("i:"+names[i]);  
  5.         }  


输出:

 

 

  1. i:  
  2. i:  
  3. i:2  


情况2.

 

 

  1. String value = "2\n\n";  
  2.         String[] names = value.split("\n");  
  3. for (int i = 0; i < names.length; i++) {  
  4.             System.out.println("i:"+names[i]);  
  5.         }  


输出:

 

 

[plain]view plaincopy
 
  1. i:2  

 

 

情况3:

 

  1. String value = "\n\n";  
  2.         String[] names = value.split("\n");  
  3. for (int i = 0; i < names.length; i++) {  
  4.             System.out.println("i:"+names[i]);  
  5.         }  


输出: 无输出,个数是0.

 

经过一个同事的纠正,split还有一个重载的方法可以做到最大分割数, 就是设置split的第2个参数为-1,如果有两个分隔符的情况下,最大分割数是3.

 

  1. String value = "2\n5\n";  
  2. String[] names = value.split("\n",-1);  
  3. for (int i = 0; i < names.length; i++) {  
  4.     System.out.println("i:"+names[i]);  
  5. }  


输出:

 

 

  1. i:2
  2. i:5
  3. i:  

 

 

分享到:
评论

相关推荐

    String.split()方法使用总结

    标题明确指出本文将围绕`String.split()`方法的使用进行深入探讨,旨在总结其功能、用法以及一些实践中的注意事项。这表明文章的目标读者是对Java编程有一定了解,希望提升自己在字符串操作方面技能的人群。 ### ...

    String类的intern、split方法

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

    java的String[] split 示例

    下面,我们将深入探讨`String[] split`方法的用法及其在实际代码中的应用。 ### `String[] split`方法概述 `String[] split`是`String`类的一个实例方法,用于基于正则表达式将一个字符串分割成一个字符串数组。其...

    Split用法大全

    Split用法大全 Split方法是C#语言中string类的一个成员,用于将字符串拆分成多个子字符串。它有多种重载形式,能够根据不同的分隔符和规则来拆分字符串。 用法1:用字符串分隔 使用Regex.Split方法可以将字符串...

    C#中Split用法

    在C#编程语言中,`Split`方法是非常实用且经常被使用的字符串处理工具之一。它主要用于将一个较长的字符串根据指定的分隔符分割成若干个子字符串,并存储在一个数组中。下面将详细介绍`Split`方法的各种用法及其应用...

    C#中Split用法详细介绍

    在本文中,我们将详细探讨`Split`方法的各种用法,以及如何在不同场景下有效地使用它。 首先,让我们回顾一下提供的示例: 1. 用字符串分隔: ```csharp string str = "aaajsbbbjsccc"; string[] sArray = ...

    JAVA_split_用法

    在Java编程语言中,`String`类提供了多个实用的方法来处理字符串,其中`split()`方法是用于将一个字符串分割成字符串数组的一种常见方式。此方法利用正则表达式(Regular Expression)作为分隔符来分割字符串,并...

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

    本文将详细介绍一种自定义的`split()`方法,该方法可以在PB环境中使用,帮助开发者轻松地将字符串按照指定的分隔符进行分割,并返回一个字符串数组。下面我们将从该方法的设计思路、参数说明、代码实现以及使用示例...

    ASP.NET中split的用法

    以下是从给定文件中提取的关于ASP.NET中`Split`方法使用的详细知识点,包括不同场景下的应用实例。 ### 一、基本使用 在最基础的使用中,`Split`方法接收一个字符或字符数组作为参数,表示用于分割字符串的分隔符...

    C# 中string.split用法详解

    第一种方法 string s=abcdeabcdeabcde; string[] sArray=s.Split...使用另一种构造方法对多个字 符进行分割: string s=abcdeabcdeabcde; string[] sArray1=s.Split(new char[3]{'c','d','e'}) ; foreach(string i in

    Java中String.split()用法小结

    总之,`String.split()`方法是Java中进行字符串切割的重要工具,正确理解和使用正则表达式转义规则是关键。在编写代码时,一定要注意特殊字符的处理,确保它们被正确地解析为分隔符,而不是正则表达式的一部分。同时...

    java中的split的用法

    `String`类提供了多种方法来处理字符串,其中`split`方法因其灵活性和强大的分割功能而被广泛使用。本文将深入探讨`split`方法的用法,并通过具体的例子帮助读者更好地理解和掌握这一知识点。 #### 二、`split`方法...

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

    使用内置的`STRING_SPLIT`函数(SQL Server 2016及以上版本) 从SQL Server 2016开始,微软引入了`STRING_SPLIT`函数,它允许我们按指定的分隔符拆分字符串。例如: ```sql DECLARE @input VARCHAR(100) = 'apple...

    C# split 使用方法.docC# split 使用方法.doc

    C#中的`Split`方法是处理字符串的强大工具,它允许我们将一个字符串分割成多个子字符串。这个方法在处理文本数据时非常有用,特别是在解析、分析或格式化字符串时。以下是对C# `Split`方法的详细说明: 1. **基本...

    C# split 函数的用法

    `Split` 方法属于 `System.String` 类,因此可以直接通过字符串实例调用。此方法的主要作用是从原始字符串中提取子字符串,并将其存储在一个数组中返回。具体来说,`Split` 方法会识别出由分隔符(或分隔符集)定义...

    Java中Split的用法及注意

    Java 中 Split 的用法及注意 Java 中的 Split 方法是通过正则表达式来拆分字符串的,它可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。该方法的语法为 `stringObj.split(regex, [limit])`,其中 `...

Global site tag (gtag.js) - Google Analytics