当前位置: 首页 > 编程笔记 >

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

顾永福
2023-03-14
本文向大家介绍浅谈java String.split丢失结尾空字符串的问题,包括了浅谈java String.split丢失结尾空字符串的问题的使用技巧和注意事项,需要的朋友参考一下

java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误

如下:

String strtest   = "1,2,";
String arry[]  = strtest.split(",");

这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第三个数组元素,结尾的空字符串被丢弃了!

这个函数还有另一种重载方式 :public String [] split (String  regex, int limit) 看下说明limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n  - 1 次,数组的长度将不会大于 n ,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。

如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

而对于函数 public String [] split (String  regex)该方法的作用就是使用给定的表达式和限制参数 0 来调用两参数 split方法。因此,所得数组中不包括结尾空字符串

所以如果不想让结尾的空字符串被丢弃,那么应该这样写:

String strtest    = "1,2,";
String arry[]  = strtest.split(",", -1);

以上这篇浅谈java String.split丢失结尾空字符串的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我正在解决一个简单的问题: 在Java中删除字符数组中的某些字符,想法很简单: 我想输入一个信号,表示当我们想要使用例如生成一个字符串时,不必考虑数组的其余部分 Java中是否有这样的字符?(我想是,但我不确定) 例如,当我们调用: 这将被打印: 虽然我想得到,但我不想使用新的数组来做到这一点 问题答案: Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此字符串中可以包含零

  • 本文向大家介绍浅谈JavaScript字符串与数组,包括了浅谈JavaScript字符串与数组的使用技巧和注意事项,需要的朋友参考一下 JavaScript字符串 字符串是一系列字符的集合,包括英文字母、标点符号、特殊符号、汉字等。 在JavaScript中,字符串可以使用双引号(" ")或单引号(' ')来表示。 双引号和单引号必须成对出现,双引号里面可以包含单引号,单引号里面也可以包含双引号。

  • 问题内容: 我有以下字符串: 如果仅打印此内容,它将输出如下内容(当然不会“按字面意思”打印): 调用方法时,我想获取新行()字符之间的所有字符串,甚至最后还有空字符串。 例如,如果我今天这样做: 我希望它像这样打印出来(输出A): 当前,它以这种方式打印(输出B),并且所有结尾的空字符串都将被跳过: 如何使方法像输出A那样包含空字符串?我当然可以编写多行代码,但是想知道,在我浪费时间尝试实现这一

  • 本文向大家介绍浅谈java 字符串,字符数组,list间的转化,包括了浅谈java 字符串,字符数组,list间的转化的使用技巧和注意事项,需要的朋友参考一下 1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 2.字符串转字符数组 3.字符数组转list 4.list转化为字符数组 以上就是小编为大家带来

  • 问题内容: 在Go中修剪字符串变量的开头和结尾空白的有效方法是什么? 问题答案: 例如, 输出:

  • 本文向大家介绍js去除字符串首尾空格?相关面试题,主要包含被问及js去除字符串首尾空格?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 使用正则(^\s)|(\s$)即可