精华内容
下载资源
问答
  • c 根据字符串拆分字符串_字符串类拆分行为
    2020-07-10 02:23:25

    c 根据字符串拆分字符串

    对于那些从VB6毕业到VB.NET的人; 毫无疑问,您遇到的一件事就是,您期望与VB6相同或相似的功能在VB.NET中是完全不同的。 我最近遇到的一种方法是String Class Split方法。

    在VB6中,Split是一个功能:

    
    Dim MySplittableString as String
    MySplittableString = "one,two,three,four,five"
    Dim MyArray() as String
    MyArray = Split(MySplittableString, ",") 
    在VB6中,上面的代码将为您提供5个元素的数组。

    MyArray(0)=“一个”

    MyArray(1)=“两个”

    ...

    同样,在VB6中,您可以指定一个比一个字符长的字符串,用它来分割定界的字符串。

    
    Dim MySplittableString as String
    MySplittableString = "one<split>two<split>three<split>four<split>five"
    Dim MyArray() as String
    MyArray = Split(MySplittableString, "<split>") 
    在VB6中,这同样有效。

    在VB.NET字符串类中输入Split方法。 您可能希望它也能类似地工作,

    但事实并非如此

    在下面的代码中...

    
    Dim MySplittableString as String = "one<split>two<split>three<split>four<split>five"
    Dim MyArray() as String = MySplittableString.Split"<split>") 
    ... split方法会忽略除第一个字符以外的所有字符-它用作唯一的定界符。 因此,在上面的代码中,您将获得:

    MyArray(0)=“”

    MyArray(1)=拆分>一个

    MyArray(2)=拆分>两个

    ...

    真是一团糟...

    在VB.NET中,您可以将split方法传递给字符串,但是

    忽略除第一个字符外的所有字符。 您可以传入chars()数组,它将使用它们中的每个作为单独的定界符。 如果您需要拆分使用多个定界符的字符串,那将很方便。 不幸的是,您不能使用VB.NET中的字符串类拆分方法来执行VB6中的Split函数之类的操作。

    但是,您可以恢复到经典VB兼容性拆分功能-但是,当我们扩展规范的.NET知识库时,我们中的某些人希望避免这种情况。

    就个人而言-我认为MS搞砸了。

    <推测>

    VB.NET产品经理明智地希望允许用户指定多个定界符,因此他/她要求一种允许用户传递字符数组的重载方法。 在该方法内部,很可能像字符串数组一样处理要解析的字符串,以提高速度,并且进行了简单的比较。
    要求还允许传入一个或多个字符的字符串。 我将其加粗,因为这就是MSDN文档中有关String Class Split方法的内容。 我认为实现该方法的人员认为这意味着他们应该将其与char数组一样对待,并使用字符串中的各个字符作为单独的分隔符。 我还认为他们搞砸了内部转换为char数组,并且只采用了字符串中的第一个字符。
    </ speculation>

    我认为这很遗憾,因为用单个字符分隔文本的时代是1980年代的做法。 我本来希望String.Split方法的实现可以识别出一组最新的要求。 我认为MS应该解决此问题。 它们不会破坏任何东西(或破坏很多东西)-主要是因为我认为没有人使用String.Split方法(字符串长度大于1),因为它仍然无法工作。

    解决方法!

    这就是我的工作。

    
    Dim DelimiterSet() As Char = {"|"c, "~"c, "`"c, "└"c, "■"c}
    Dim Delimiter(0) As Char
    Dim I As Integer = 0
    For I = 0 To 4
        If MySplittableString.Contains(DelimiterSet(I)) = False Then
           Delimiter(0) = DelimiterSet(I)
           Exit For
         End If
    Next
    Dim MyArray() As String = MySplittableString.Replace("<split>", Delimiter(0).ToString).Split(Delimiter, StringSplitOptions.RemoveEmptyEntries) 
    上面的代码首先检查需要拆分的字符串是否存在单个字符。 如今,单个字符定界是有风险的-因此,找到不在您要分割的字符串中的唯一字符很重要。 上面的代码循环使用了5个可能的字符-如果需要,可以扩展该字符。 当找到一个不存在的字符串时,它将使用唯一的单个字符替换字符串(在我的示例中为“ <split>”)。 然后,它将使用String.Split方法返回一个数组。

    这是很多代码-但是它确实避免了旧的VB6代码,并且似乎性能较高。 可能会有更快的方法-但我的要求很简单。

    德斯

    翻译自: https://bytes.com/topic/visual-basic-net/insights/889922-string-class-split-behavior

    c 根据字符串拆分字符串

    更多相关内容
  • 1、问题引入 自己在写一个linux下的模拟执行指令...2、自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a.c两个字符串、mv a.c b.c最后会被分割成mv和a.c和b.c三个字符串。 具体实现如下: #inc
  • 纯C语言实现字符串拆分操作,把字符串拆分成字符串数组,然后再输出。 使用sstream方法,作为底层驱动操作实现非常方便。
  • 下面小编就为大家带来一篇java 字符串分割的三种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要介绍了Java StringUtils字符串分割转数组的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *...
  • 利用mysql中提供的所有函数,组成的一个存储过程。此存储过程主要是将传入的字符串分割为多个值,单个列。
  • 字符串分割,将一个字符串分裂成多个字符串组成的列表,可以理解为字符串转列表,经常会用到 语法:str.split(sep, [,max]),sep可以指定切割的符号,max可以指定切割的次数(次数不常用) 不带参数时以空格进行...
  • 经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:str为要分解的字符串...
  • vbs字符串分割函数

    2020-09-05 20:48:59
    vbs字符串分割函数,将字符中如入指定分割字符,需要的朋友可以参考下。
  • 详解C++的String类的字符串分割实现 功能需求,输入一个字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案...
  • javascript 根据指定字符把字符串拆分为数组
  • 主要介绍了jquery分割字符串的方法,涉及jQuery中使用split方法进行字符串分割的相关技巧,需要的朋友可以参考下
  • Oracle拆分字符串字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。
  • 发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割,于是考虑到可以利用这个特性来实现c++库函数中没有的字符串分割函数split ...
  • 本文实例讲述了MySQL截取和拆分字符串函数用法。分享给大家供大家参考,具体如下: 首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后。SUBSTRING的参数有三个,最后一个是...
  • 主要介绍了Shell脚本实现简单分割字符串,本文讲解使用CUT命令实现以逗号、分号或其它分隔符来切割字符串,需要的朋友可以参考下
  • 分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回...
  • split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split(“$”)//$为要分割的字符 Android:分割字符串需要加上中括号split(“[$]”)//$为要分割的字符 2.特殊用法–当split()分割字符串遇上特殊...
  • 实例如下: <?...$str="1|2|3|4|5|"; ...json_decode()这个函数也可以把字符串分割成数组 (第二个参数为true才行) 以上这篇php把字符串指定字符分割成数组的方法就是小编分享给大家的全部内容了
  • Python实例:实现拆分含有多种分割符号的字符串的方法

    问题描述

    比如,我们想要把如下的字符串,拆分成不同的字段,该字符串包含多种不同的分割符,例如:

    String_test = 'Xiao,Liang|shi,yi/ge;cheng|xu;yuan'
    

    一、理解几个重要的内置函数

    1.1 split函数

    注意,split()函数的使用细节:
    (1)split()函数是一个字符串类函数,也就是说它只能处理字符串类型的数据;
    (2)split()函数一次只能处理字符串中一种类型的分割符,也就是说对于上述问题,要多次调用该函数;
    (3)split()函数的返回值是分割后的字符串的数组。

    为了加深对split()函数的理解,针对上面三条特性,分别进行验证。

    • split()函数一次只能处理一种字符型分割符:
      如下图所示,如果我们在split()函数中直接输入字符串中的全部分割符,虽然程序没有报错,但是分割后的String_Split字符串并没有进行分割操作。

    在这里插入图片描述

    • split()函数的返回值为字符串数组:
      如下图所示,使用/对字符串String_test进行分割,得到的结果String_List_Split为包含两个字符串的数组。

    在这里插入图片描述

    • split()函数只能对字符串进行分割操作:
    • 此时,如果我们再用split()函数对字符串数组String_List_Split进行分割操作,则会出现如下图所示的AttributError报错信息。

    在这里插入图片描述

    1.2 extend函数

    extend()函数在列表末尾添加一个序列的多个值,它经常被用于扩展原列表的情况,其语法格式如下所示:

    list.extend(seq)
    
    • seq:元素列表;
    • 该函数没有返回值,但会在原列表list中以列表形式添加seq的序列元素。

    通过下面例子来理解extend函数:

    在这里插入图片描述

    1.3 lambda匿名函数

    lambda匿名函数是没有名称的内联函数,其仅限于单个表达式,并可以使用在Python常规功能呢个的任何地方。

    • 相比较于函数体,lambda匿名函数是一个表达式,因此形式上简洁很多;
    • lambda匿名函数的主体是一个表达式,而不是一个代码块,因此仅仅在其表达式中封装有限的逻辑;
      其语法格式如下所示:
    lambda arg_1, arg_2, ..., arg_n: expression(arg_1, arg_2, ..., arg_n)
    

    通过下面一个简单的例子来理解extend函数:
    在这里插入图片描述

    由上图可以看出,使用lambda可以定义一个匿名的内联函数,该函数没有名称,上面的fun_sum只是保存了已创建的lambda函数的变量名称。

    1.4 map函数

    map函数的作用可以理解为:其将一个集合中每一个元素映射为另一个集合,其调用格式如下所示,我们可以直观地理解为对data中的每个元素迭代的使用iter_method

    map(iter_method, data)
    
    • iter_method:Python的可迭代方法,也可以是函数名字,也可以是匿名函数lambda
    • data:需要处理的数据。

    通过下面一个例子来理解map函数:
    假设我们从csv文件中读取一段数字,并放到data列表中,通常情况下,我们读取的数据是以字符形式存放在data列表中的,比如:

    data = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
    

    但是,实际情况,我们用Python做数据处理时,想要得到的是数值型数据,这个时候我们就可以使用map函数实现:

    list(map(int, data))
    

    在这里插入图片描述

    由上图我们可以看出,map()函数把int()函数应用到data序列的每个元素,返回的列表是数值列表,而不是字符串列表。

    注意map()函数的返回结果是可迭代对象,它能处理任何类型的迭代对象,Python中很多内置函数都可以应用于这样的映射-处理场景中,非常典型的就是在map()中使用匿名函数lambda

    二、含有多种分割符字符串拆分方法

    本部分给出直观的编程封装成函数的两种实现方式。

    2.1 直观编程实现方式

    # 包含多种分割符的字符串
    String_test = 'Xiao,Liang|shi,yi/ge;cheng|xu;yuan'
    
    # 首先,使用split()函数以/分割符对String_test字符串进行分割
    String_List_Split = String_test.split('/')
    
    # 下面使用列表解析方法,对String_List_Split字符串列表进行切割
    # 并以|分割符,对列表中每个字符串继续分割
    String_List_Split = [string_item.split('|') for string_item 
    					in String_List_Split]
    
    # 注意,进一步分割后String_List_Split就变成了一个二维字符串数组,
    # 对这个二维列表进行处理会很不方便。这里使用extend函数,将二维列表
    # 转变为一维列表:
    String_List_Split_Extend = [] # 开辟一个存储一维列表的内存空间
    
    # 通过map函数和extend函数,并结合列表构造器list,将二维字符串数组
    # String_List_Split转变为一维字符串数组,并存储于Sting_List_Split_Extend内。
    list(map(String_List_Split_Extend.extend, String_List_Split))
    # 此时,String_List_Split就变成一维数组了。
    
    # 下面内容是作为扩展内容,感兴趣自行尝试,后续我还会专门介绍sum()函数的应用。
    # 上面二维转一维略显地不好理解,我们还可以使用sum函数将二维字符串数组
    # String_List_Split转变为一维,相较于上面的方法,该方法简洁很多。
    # sum(String_List_Split, [])	# 注意,默认sum函数加的初始值为0的整型数字,
    								# 而这里为数组,所以需要加上[]空列表参数。
    

    下面为了便于更进一步理解上面的代码,逐行输出结果理解一下:

    String_List_Split = String_test.split('/')
    

    这条代码的输出结果如下图所示:

    在这里插入图片描述

    由上图我们可以看出,经过split函数以/分割副将字符串拆分成了字符串数组;如果进一步对String_List_Split列表进一步以|分割符进行分割,注意这里使用列表解析的方法对列表中每个字符串进行了分割处理,代码如下所示:

    String_List_Split = [string_item.split('|') for string_item 
    					in String_List_Split]
    

    处理结果如下图所示:

    在这里插入图片描述

    如上图所示,再次使用split函数,进一步处理后的String_List_Split列表就变成了二维列表,非常不方便再做进一步的分割。
    所以,才使用下面的指令将二维数组拉伸为一维的,并结合map函数将这种拉伸操作映射到String_List_Split的每个元素。进而使用list构造器构造列表,并将拉直的数组存放到String_List_Split_Extend内。代码如下所示:

    String_List_Split_Extend = [] # 开辟一个存储一维列表的内存空间
    list(map(String_List_Split_Extend.extend, String_List_Split))
    

    在这里插入图片描述

    由上图可以看出,经过上面代码的处理,String_List_Split_Extend存储的就是拉直的一维数组。进而重复上面的操作,直至最终分割完成。也可以将上面的代码放到针对分割符的一个for循环中就可以实现字符串的拆分了。

    2.2 封装成函数的实现方式

    有了上面的理解,我们就可以进一步将上面包含多种分割符字符串拆分方法封装成函数形式,代码如下所示:

    # 方法一:连续使用str.split()方法,但是该方法一次只能处理一种分割符。
    # 因此,我们只能每次处理一种分割符号。
    
    String_test = 'Xiao,Liang|shi,yi/ge;cheng|xu;yuan'
    
    # 将上面的过程封装成一个函数String_Split
    def String_Split(string, separators):
        # 将传进来的列表放入统一的数组中
        result_split = [string]
        # 使用for循环每次处理一种分割符
        for sep in separators:
            # 使用map函数迭代result_split字符串数组
            string_temp = []    # 用于暂时存储分割中间列表变量
            list(
                  map(
                     lambda sub_string: string_temp.extend(sub_string.split(sep)),
                     result_split
                     )
                 )
            # 经过上面的指令,中间变量string_temp就被分割后的内容填充了,
            # 将分割后的内容赋值给result_split,并作为函数返回值即可
            result_split = string_temp
    
        return result_split
    
    # 调用String_Split函数对字符串String_test进行分割
    String_Split_Result = String_Split(String_test, ',|/;')
    # 输出分割结果
    print(String_Split_Result)
    

    执行代码结果如下图所示:

    在这里插入图片描述

    理解本文代码的关键!
    下面解释上面的代码是如何通过map()lambda实现字符串拆分方法的,它是理解本文函数式代码的核心

    # result_split字符串列表是要分割的字符串
    result_split = 'Xiao,Liang|shi,yi/ge;cheng|xu;yuan'
    
    # 设置一个中间变量string_temp列表
    string_temp = []
    
    list(
    	 map(
    		# lambda匿名函数定义了对自变量sub_string的分割函数,
    		# 即通过分割符sep分割result_split列表;并通过extend
    		# 函数实现了将二维数组拉伸为一维数组,以便对每个元素进行
    		# 迭代处理。
    		lambda sub_string: string_temp.extend(sub_string.split(sep)),
    		result_split
    		)
    	)
    
    展开全文
  • 2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...
  • //这是一字符串 var strs= new Array(); //定义一数组 strs=str.split(“,”); //字符分割 for (i=0;i”); //分割后的字符输出 } [removed] JS中split的用法 代码如下: <!DOCTYPE html PUBLIC “-//W3C/...
  • 通过指定分隔符将字符串拆分为元胞数组。 如果指定,可以排除空条目。 如果没有指定,则假定为空格分隔符。 前任: arr = splitstring( 'a,b,c,d', ',' )
  • c语言实现字符串分割split(), 实现C语言实现按分隔符来截取字符串
  • delphi字符串字符串分割 Edit1aa1aa2 按aa分割结果 Edit1 1 2
  • //在Javascript脚本中,将字符串按指定符号进行分割成数组用split()的方法 //格式StringObject.split( char [,howmany]); //char: 必需。字符串或正则表达式howmany: 可选。 //该参数可指定返回的...
  • C++_MFC_拆分字符串

    2018-05-17 17:28:04
    我们应该注意到,没有一个受过伦理教育的软件工程师会同意开发出“摧毁巴格达”的程序。然而基本的职业道德却可以要求他们开发出“摧毁城市”的程序,巴格达只是这个程序的一个参数。
  • java字符串拆分 空字符Java String split() method is used to split the string into a string array based on the provided regular expression. Java String split()方法用于根据提供的正则表达式将字符串拆分...

    java字符串拆分 空字符

    Java String split() method is used to split the string into a string array based on the provided regular expression.

    Java String split()方法用于根据提供的正则表达式将字符串拆分为字符串数组。

    Java字符串拆分 (Java String split)

    Sometimes we have to split String in Java, for example splitting data of CSV file to get all the different values.

    有时我们必须在Java中拆分String,例如拆分CSV文件的数据以获取所有不同的值。

    String class provides two useful methods to split a string in java.

    字符串类提供了两种有用的方法来在Java中拆分字符串。

    1. public String[] split(String regex): This java string split method is used to split the string based on the given regular expression string. The whole string is split and returned in the form of a string array. This method was introduced in Java 1.4. Notice that the trailing empty strings are not included in the returned string array. Let’s look at a simple java string split example to understand this.
      String s = "abcaada";
      System.out.println(Arrays.toString(s.split("a")));

      Above code will produce output as [, bc, , d]. Notice that the last empty string is excluded from the returned string array.

      public String[] split(String regex) :此java字符串split方法用于根据给定的正则表达式字符串拆分字符串。 整个字符串被拆分并以字符串数组的形式返回。 此方法是Java 1.4中引入的。 请注意,返回的字符串数组中不包含结尾的空字符串。 让我们看一个简单的java字符串拆分示例以了解这一点。

      上面的代码将输出为[, bc, , d] 。 请注意,最后一个空字符串从返回的字符串数组中排除。

    2. public String[] split(String regex, int limit): This java string split method is used when we want the string to be split into a limited number of strings. For example, let’s say we have a String variable that contains name and address with comma as a delimiter. Now, the address can have commas in them, so we can use this method. A short example of this string split is given below.
      String s = "Pankaj,New York,USA";
      String[] data = s.split(",", 2);
      System.out.println("Name = "+data[0]); //Pankaj
      System.out.println("Address = "+data[1]); //New York,USA

      public String[] split(String regex, int limit) :当我们希望将字符串拆分为有限数量的字符串时,可以使用此java字符串拆分方法。 例如,假设我们有一个String变量,其中包含名称和地址,并以逗号作为分隔符。 现在,该地址中可以包含逗号,因此我们可以使用此方法。 下面是该字符串拆分的简短示例。
    3. Note that the first method above actually utilizes the second method by passing limit as 0.

      请注意,上述第一种方法实际上是通过将limit传递为0来利用第二种方法。

      public String[] split(String regex) {
          return split(regex, 0);
      }

    Java String拆分要点 (Java String split important points)

    Some important points about java String split method are:

    关于Java字符串拆分方法的一些重要点是:

    • The array returned by this method contains each substring of this string that is terminated by another substring that matches the given expression or is terminated by the end of the string. The substrings in the array are in the order in which they occur in this string.

      此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止或由字符串的结尾终止。 数组中的子字符串按照它们在此字符串中出现的顺序排列。
    • If the regex doesn’t match any part of the input string then the resulting array has just one element, namely this string.

      如果正则表达式与输入字符串的任何部分都不匹配,则结果数组只有一个元素,即此字符串。
    • The limit parameter controls the number of times the pattern is applied and therefore affects the length of the resulting array. If the limit n is greater than zero then the pattern will be applied at most n – 1 time, the array’s length will be no greater than n, and the array’s last entry will contain all input beyond the last matched delimiter.

      If n is non-positive then the pattern will be applied as many times as possible and the array can have any length.

      If n is zero then the pattern will be applied as many times as possible, the array can have any length, and trailing empty strings will be discarded.

      如果n为非正数,则将尽可能多地应用该模式,并且数组可以具有任何长度。

      如果n为零,则该模式将被尽可能多地应用,该数组可以具有任意长度,并且尾随的空字符串将被丢弃。

    Java字符串拆分示例 (Java String split example)

    Here is an example of java String split method.

    这是java字符串拆分方法的示例。

    package com.journaldev.util;
    
    import java.util.Arrays;
    
    public class JavaStringSplit {
    
    	/**
    	 * Java String split example
    	 * 
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		String line = "I am a java developer";
    
    		String[] words = line.split(" ");
    
    		String[] twoWords = line.split(" ", 2);
    
    		System.out.println("String split with delimiter: " + Arrays.toString(words));
    
    		System.out.println("String split into two: " + Arrays.toString(twoWords));
    
    		// split string delimited with special characters
    		String wordsWithNumbers = "I|am|a|java|developer";
    
    		String[] numbers = wordsWithNumbers.split("\\|");
    
    		System.out.println("String split with special character: " + Arrays.toString(numbers));
    
    	}
    }

    Below image shows the output produced by the above String split example program.

    下图显示了上面的String split示例程序产生的输出。

    We can use a backslash to use java regular expression special characters as normal characters like I have used pipe (|) special character in the above program.

    我们可以使用反斜杠将Java正则表达式特殊字符用作普通字符,就像我在上述程序中使用竖线(|)特殊字符一样。

    That’s all for a quick roundup on java string split example.

    这就是对Java字符串拆分示例的快速汇总。

    Reference: API Doc

    参考: API文档

    翻译自: https://www.journaldev.com/791/java-string-split

    java字符串拆分 空字符

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 563,540
精华内容 225,416
关键字:

字符串拆分

友情链接: day921.rar