Java Split空字符串问题

本文详细介绍了Java中String类split方法的使用方式,特别是如何通过设置不同的limit参数来控制分割行为,包括忽略尾部空字符串等特性。通过示例代码展示了当使用特定正则表达式进行字符串分割时,如何获取预期的数组元素。

Java Split空字符串问题

public String[] split(String regex, int limit); limit 参数控制应用模式的次数,从而影响结果数组的长度。 如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入。 如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度。 如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串。

  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);

  }

  }

  }

  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=

### Java中使用split方法去除字符串Java中,`split` 方法的正则表达式参数决定了如何分割字符串。如果需要去除结果中的字符串,可以通过以下方式实现: #### 使用正则表达式 `+` 通过在正则表达式中使用 `+` 修饰符,可以匹配一个或多个连续的分隔符。例如,当使用 `","` 作为分隔符时,若字符串中存在连续的逗号(如 `",,"`),默认情况下会生成字符串。而使用 `",+"` 可以避免这种情况[^2]。 ```java String ss = "aa,,sas,,sasa,,,,sasas,,,"; String[] array = ss.split(",+"); System.out.println(Arrays.toString(array)); ``` 上述代码中,`",+"` 表示匹配一个或多个连续的逗号,因此不会产生字符串。 #### 示例代码 以下是完整的代码示例,展示如何使用 `split` 方法去除字符串: ```java public class TestSplit { public static void main(String[] args) { // 示例1:去除连续逗号导致的字符串 String ss1 = "aa,,sas,,sasa,,,,sasas,,,"; String[] array1 = ss1.split(",+"); System.out.println("去除字符串后的结果:" + Arrays.toString(array1)); // 示例2:去除连续格导致的字符串 String ss2 = "aa sas sa sa sas as "; String[] array2 = ss2.split("\\s+"); System.out.println("去除字符串后的结果:" + Arrays.toString(array2)); } } ``` #### 输出结果 运行上述代码后,输出如下: ``` 去除字符串后的结果:[aa, sas, sasa, sasas] 去除字符串后的结果:[aa, sas, sa, sa, sas, as] ``` 从输出可以看到,通过使用正则表达式 `+`,成功去除了结果中的字符串[^3]。 #### 注意事项 - 如果正则表达式中没有使用 `+` 或其他量词符号,则可能会生成字符串。例如,`"aa,,sas".split(",")` 会生成包含字符串的结果。 - 在处理用户输入时,建议始终考虑可能存在的多余分隔符,并合理设计正则表达式以避免字符串的出现[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值