硬核推荐(java怎么分类)java分割方法,如何在Java中分割字符串,java log4j拆分,
介绍
通常,我们面临这样一种情况,我们需要将字符串拆分为某些特定字符或子字符串,以从中获取一些有用的信息。
例如,我们可能想在国家代码或从CSV文件导入的数据上分割电话号码。
在本文中,我们将介绍如何在Java中拆分String。
该分裂()方法(没有限制)
此方法采用String正则表达式(regex)格式的一个参数。此方法在给定正则表达式的匹配项附近拆分字符串。
该方法的语法为:
凡regex参数表示的分隔符,即基于什么我们就会将我们的字符串。请记住,此参数不需要太复杂,Java仅提供使用正则表达式的选项。
例如,让我们看看如何将String拆分为两个单独的名称:
我们可以简单地使用字符/子字符串代替实际的正则表达式。当然,在正则表达式中有一些特殊字符需要牢记,并在需要它们的字面值时转义它们。
字符串拆分后,结果将以字符串数组形式返回。返回数组中的字符串以与原始字符串相同的顺序出现。
结果打包在String数组中。要检索单独的名称,我们可以访问每个元素:
结果是:
请记住,此方法将在所有出现的定界符上分割字符串。例如,我们可以使用CSV格式的输入:
结果是:
Java split()方法(有限制)
在此,该方法采用两个参数,一个是前面讨论的参数,regex另一个是一个整数值,表示limit。该limit参数用于确定我们要分割字符串多少次。
该limit参数可以采用三种形式之一,即,它可以是大于,小于或大于零。让我们看一下这些情况分别代表什么:
正数limit-String将最多拆分limit - 1一次。除此之外,字符串的其余部分将按原样作为数组的最后一个元素返回,而不进行拆分。返回数组的长度将始终小于或等于limit。负数limit-String在定界符处将其拆分尽可能多的次数,而忽略特定的负值集。数组中的子字符串包括原始字符串中的尾随空格(如果有)。将limit设置为0-时,String将再次拆分尽可能多的次数,并且结果数组的长度没有限制。split()如前所述,其工作原理与调用方法相同,只是将regex作为参数。在这种情况下,不返回尾随空格。正极限值
让我们看一些使用不同限制的示例。首先,一个正值limit:
限制为4,String最多将拆分三(limit - 1)次。这给了我们一个包含四个元素(0..3)的数组,最后一个元素是第三次拆分之后的所有内容:
如果我们limit在相同的String上使用负数:
在String将被分割为多次地,和后空字符串将被添加到阵列中:
我们没有考虑实际使用的负值,如果使用,则会得到相同的结果-150。
如果将设置limit为0,则将再次对String进行尽可能多的拆分,但是结果数组将不包含尾随的空格:
这将给我们:
特殊字符注意
如前所述,regex在split()方法中作为定界符传递的参数是一个正则表达式。如果要使用特殊字符的分隔符,则必须确保对特殊字符进行转义。例如,*字符表示“以下字符的一个或多个实例”。
正则表达式中有12个这样的字符。它们是:\,^,$,.,|,?,*,+,(,), [,{。你可以看到他们在正则表达式的意思在这里。
如果要String在这些字符之一处拆分a ,则必须特别注意在方法参数中转义这些字符。我们可以使用此方法的一种方法是使用反斜杠\。例如:
string在|字符处拆分变量。我们在这里使用两个反斜杠,因为我们需要首先转义反斜杠的Java含义,因此可以将反斜杠应用于|字符。
取而代之的是,我们可以使用正则表达式字符集。这是指将要转义的特殊字符放在方括号内。这样,特殊字符被视为普通字符。例如,我们可以|这样说:
逃脱特殊字符的另一种方法是使用Pattern.quote():
结论
split()JavaString类的方法是非常有用且经常使用的工具。大多数数据,特别是从读取文件中获得的数据,都需要进行一些预处理,例如拆分字符串,以从中获取有意义的信息。
在本文中,我们讨论了如何在Java中拆分字符串。
本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据