CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

如何在Java中分割字符串-源码交易平台丞旭猿

介绍

通常,我们面临这样一种情况,我们需要将字符串拆分为某些特定字符或子字符串,以从中获取一些有用的信息。

例如,我们可能想在国家代码或从CSV文件导入的数据上分割电话号码。

在本文中,我们将介绍如何在Java中拆分String。

分裂()方法(没有限制)

此方法采用String正则表达式(regex)格式的一个参数。此方法在给定正则表达式的匹配项附近拆分字符串。

该方法的语法为:

String[] split(String regex, int limit)

regex参数表示的分隔符,即基于什么我们就会将我们的字符串。请记住,此参数不需要太复杂,Java仅提供使用正则表达式的选项。

例如,让我们看看如何将String拆分为两个单独的名称:

String myString = "Jane-Doe";
String[] splitString = myString.split("-");

我们可以简单地使用字符/子字符串代替实际的正则表达式。当然,在正则表达式中有一些特殊字符需要牢记,并在需要它们的字面值时转义它们。

字符串拆分后,结果将以字符串数组形式返回。返回数组中的字符串以与原始字符串相同的顺序出现。

结果打包在String数组中。要检索单独的名称,我们可以访问每个元素:

System.out.println(splitString[0]);
System.out.println(splitString[1]);

结果是:

Jane
Doe

请记住,此方法将在所有出现的定界符上分割字符串。例如,我们可以使用CSV格式的输入:

String myString = "Jane,21,Employed,Software Engineer";
String[] splitString = myString.split(",");

for (String s : splitString) {
    System.out.println(s);
}

结果是:

Jane
21
Employed
Software Engineer

Javasplit()方法(有限制)

在此,该方法采用两个参数,一个是前面讨论的参数,regex另一个是一个整数值,表示limit。该limit参数用于确定我们要分割字符串多少次。

limit参数可以采用三种形式之一,即,它可以是大于,小于或大于零。让我们看一下这些情况分别代表什么:

  • 正数limitString将最多拆分limit - 1一次。除此之外,字符串的其余部分将按原样作为数组的最后一个元素返回,而不进行拆分。返回数组的长度将始终小于或等于limit
  • 负数limitString在定界符处将其拆分尽可能多的次数,而忽略特定的负值集。数组中的子字符串包括原始字符串中的尾随空格(如果有)。
  • limit设置为0-时,String将再次拆分尽可能多的次数,并且结果数组的长度没有限制。split()如前所述,其工作原理与调用方法相同,只是将regex作为参数。在这种情况下,不返回尾随空格。

正极限值

让我们看一些使用不同限制的示例。首先,一个正值limit

String myString = "there,,are,more,than,three,commas,,,";
String [] splitStrings = myString.split(",", 4);

for(String string : splitStrings){
    System.out.println(String.format(" \" %s \"", string));
}

限制为4,String最多将拆分三(limit - 1)次。这给了我们一个包含四个元素(0..3)的数组,最后一个元素是第三次拆分之后的所有内容:

"there"
""
"are"
"more,than,three,commas,,,"

如果我们limit在相同的String上使用负数:

String myString = "there,,are,more,than,three,commas,,,";
String [] splitStrings = myString.split(",", -1);

for(String string : splitStrings){
    System.out.println(String.format(" \" %s \"", string));
}

String将被分割为多次地,和后空字符串将被添加到阵列中:

"there"
""
"are"
"more"
"than"
"three"
"commas"
""
""
""

我们没有考虑实际使用的负值,如果使用,则会得到相同的结果-150

如果将设置limit0,则将再次对String进行尽可能多的拆分,但是结果数组将不包含尾随的空格:

String myString = "there,,are,more,than,three,commas,,,";

// Equivalent to calling the split() method with only the regex parameter
String [] splitStrings = myString.split(",", 0);

for(String string : splitStrings){
    System.out.println(String.format(" \" %s \"", string));
}

这将给我们:

"there"
""
"are"
"more"
"than"
"three"
"commas"

特殊字符注意

如前所述,regexsplit()方法中作为定界符传递的参数是一个正则表达式。如果要使用特殊字符的分隔符,则必须确保对特殊字符进行转义。例如,*字符表示以下字符的一个或多个实例。

正则表达式中有12个这样的字符。它们是:\^$.|?*+()[{。你可以看到他们在正则表达式的意思在这里

如果要String在这些字符之一处拆分a ,则必须特别注意在方法参数中转义这些字符。我们可以使用此方法的一种方法是使用反斜杠\。例如:

string.split("\\|");

string|字符处拆分变量。我们在这里使用两个反斜杠,因为我们需要首先转义反斜杠的Java含义,因此可以将反斜杠应用于|字符。

取而代之的是,我们可以使用正则表达式字符集。这是指将要转义的特殊字符放在方括号内。这样,特殊字符被视为普通字符。例如,我们可以|这样说:

string.split("[|]");

逃脱特殊字符的另一种方法是使用Pattern.quote()

string.split(Pattern.quote("|"));

结论

split()JavaString类的方法是非常有用且经常使用的工具。大多数数据,特别是从读取文件中获得的数据,都需要进行一些预处理,例如拆分字符串,以从中获取有意义的信息。

在本文中,我们讨论了如何在Java中拆分字符串。

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容