Maison > Java > javaDidacticiel > le corps du texte

Comment diviser une chaîne en Java

WBOY
Libérer: 2023-04-26 22:55:13
avant
2440 Les gens l'ont consulté

使用方法

split 方法的一种声明为,

public String[] split(String regex)
Copier après la connexion

其中 regex 指的是正则表达式分隔符,我们平时使用单个字符作为分隔符,其实可以看作特殊的正则表达式,特殊之处在于这种表达式只匹配它自身,如 "-"  只匹配 "-", 示例如下:

String string = "86-15003455666"; String[] parts = string.split("-"); String part1 = parts[0]; // 86 String part2 = parts[1]; // 15003455666
Copier après la connexion

split 方法的另一个声明为:

public String[] split(String regex, int limit)
Copier après la connexion

regex 指的是 正则表达式分隔符,limit 指定的则是分割的份数,举个例子就明白了

String string = "004-556-42"; String[] parts = string.split("-", 2);   // 限定分割两份 String part1 = parts[0]; // 004 String part2 = parts[1]; // 556-42
Copier après la connexion

而在某些场景下,我们可能想要在结果中保留分隔符,这也是可以做到了设置分隔符与分割后左侧的结果相连,

String string = "86-15003455666"; String[] parts = string.split("(?<p>设置分隔符与分割后右侧的结果相连,</p><pre class="brush:php;toolbar:false">String string = "86-15003455666"; String[] parts = string.split("(?=-)"); String part1 = parts[0]; // 86 String part2 = parts[1]; // -15003455666
Copier après la connexion

机智的你可能已经发现了,其实分割方法的精妙之处,全在于正则表达式 regex 的设置,正则表达式还是要好好学习的!

妙用正则表达式

在实际的工作场景中,对于要分割的字符串,我们在分割之前,往往需要校验下它的格式,只有符合我们的要求,我们才对它进行拆分处理。而使用 Pattern 类加  Matcher 类,可以使字符串的格式识别和分割操作一气呵成:

public class SplitExample {     //\d代表数字,+代表出现一次或多次。所以(\\d+)-(\\d+)匹配用"-"相连的两个数字串     // Pattern 对象是正则表达式的编译表示     private static Pattern twopart = Pattern.compile("(\\d+)-(\\d+)");      public static void checkString(String s)     {         // Matcher对象对输入字符串进行解释和匹配操作         Matcher m = twopart.matcher(s);         if (m.matches()) {             //m.group(1) 和 m.group(2) 存储分割后的子串             System.out.println(s + " matches; first part is " + m.group(1) +                     ", second part is " + m.group(2) + ".");         } else {             System.out.println(s + " does not match.");         }     }      public static void main(String[] args) {         checkString("123-4567");  // 匹配         checkString("s-tar");    // 字母序列,不匹配         checkString("123-");    // "-"右侧的数字串为空,不匹配         checkString("-4567");    // "-"左侧的数字串为空,不匹配         checkString("123-4567-890");    // 存在两个"-",不匹配     } }
Copier après la connexion

上述程序的运行结果为:

Comment diviser une chaîne en Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal