关于split分割字符串,空结果不能得到的问题

先看源代码

/**
 * 
 * @author 赵学庆 www.java2000.net
 *
 */
class T {
  public static void main(String args[]) {
    String num[] = new String[11];
    String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
    num = sLine.split("//|");
    int row = 1;
    for (String s : num) {
      System.out.println(row+++"="+s);
    }
  }
}

运行结果为

 1=101494

2=360103660318444

3=2008/06/17

4=周润英

5=1292.0

 6=3085.76

7=2778.28

8=912.91

9=106.0

查看API,有一个

public String[] split(String regex, int limit);

limit 参数控制应用模式的次数,从而影响结果数组的长度。

如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入。

如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度。

如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串。  修改代码为

 

/**
 * 
 * @author 赵学庆 www.java2000.net
 *
 */
class T {
  public static void main(String args[]) {
    String num[] = new String[11];
    String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
    num = sLine.split("//|",-1); // 这里使用-1作为参数
    int row = 1;
    for (String s : num) {
      System.out.println(row+++"="+s);
    }
  }
}

运行结果

1=101494

2=360103660318444

3=2008/06/17

4=周润英

5=1292.0

6=3085.76

7=2778.28

8=912.91

9=106.0

10=

11=

12=

 

结果正常

 

 

 

 

 







<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
### 回答1: QStringsplit()函数可以用来分割字符串。它接受一个分隔符作为参数,并返回一个QStringList对象,其中包含原始字符串中所有使用分隔符分隔的子字符串。例如,如果我们有一个字符串"hello,world",我们可以使用split()函数将其分割成两个子字符串"hello"和"world",如下所示: QString str = "hello,world"; QStringList list = str.split(","); // list现在包含两个元素:"hello"和"world" ### 回答2: QString split()是Qt中的一个实用函数,用于分割字符串。它的作用是将一个字符串按照指定的字符或字符串进行分割,返回一个QStringList类型的列表。通过split()函数,我们可以将一个包含多个信息的字符串按照特定的字符进行分割,分别获取这些信息,并进行进一步的处理。 该函数的语法为:QStringList QString::split(const QString &separator, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const; 其中,separator表示分隔符,它可以是一个字符,也可以是一个字符串;behavior表示分割时是否保留元素。 例如,我们有一个字符串str1,它的内容为“11,22,33,44”,我们想要将它按照逗号进行分割,可以使用如下代码: QString str1 = "11,22,33,44"; QStringList list = str1.split(","); 最终,list中存储的就是分割后的四个元素:11、22、33和44。如果我们想要在分割时去除元素,可以添加Qt::SkipEmptyParts属性: QStringList list = str1.split(",", Qt::SkipEmptyParts); 另外,我们还可以使用正则表达式作为分隔符,例如: QString str2 = "apple,orange,banana&grape"; QStringList list2 = str2.split(QRegExp("[,&]")); 以上代码中,分隔符为逗号和&符号,这里使用了正则表达式[]符号,最终对str2进行分割得到了四个元素:apple、orange、banana和grape。 综上所述,split()函数是一种十分常用的字符串处理函数,在我们需要对一个包含多个元素的字符串进行分割和处理时,它可以大大简化我们的处理过程,提高代码的效率和可读性。 ### 回答3: QString是Qt框架中的一个字符串类,提供了许多字符串操作方法,其中之一就是split方法。split方法可以用于将一个字符串按照指定的分隔符划分成多个子串,并将这些子串存入一个字符串列表中。 split方法的语法如下: QStringList QString::split(const QString &separator, SplitBehavior behavior = KeepEmptyParts) 其中,separator参数是指定的分隔符,behavior参数指定是否保留白子串。如果behavior为KeepEmptyParts,表示保留白子串,否则不保留。 split方法返回一个QStringList对象,其中包含了分隔后的多个子串。使用QStringList的方法如下: QStringList list = str.split(separator, behavior); 其中,str是需要分割字符串,separator是指定的分隔符,behavior是指定的分割策略,list是分割后得到的字符串列表。 下面是一个示例代码: QString str = "Hello World!"; QStringList list = str.split(" "); foreach(QString s, list) { qDebug() << s; } 上述示例代码将会输出以下内容: "Hello" "World!" 在实际开发中,split方法经常被用来处理字符分隔符分割的数据。比如说,在读取CSV文件时,可以使用split方法将一行数据分割成多个字段,从而方便进行后续的数据处理。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值