一、split()
1.定义
Java中split()方法可以根据指定的正则表达式将字符串分割成多个子字符串,并将结果以字符串数组的方式返回。
2.分割符种类
分割符可以是数字,任意字符,字符串,符号等。
3.重载的方法以及含义
String[] split(String regex) | 返回被regex分割后的字符串数组 |
Stirng[] split(Stirng regex,int limit) | 返回被regex分割后的,数组长度为limit的字符串数组 |
4.注意事项
a.空字符串
如果是" ",空格字符串,那输出结果将会以空格分割符分割;
如果是""空字符串,输出结果将会是单个字符的形式输出为字符串数组,长度为str.length();
public class SplitTest {
public static void main(String []args) {
String str="abcdef ghi";
String[] list=str.split(" ");
for (String s:list
) {
System.out.println(s);
}
String[] list1=str.split("");
for (String s:list1
) {
System.out.println(s);
}
}
}
运行结果:
b.连续分隔符
如果字符串中有连续的分割字符,那么结果数组中将出现空字符串。(注意区分空字符串,空格字符串);
public class SplitTest {
public static void main(String []args) {
String str="abcdef,,ghi";
String[] list=str.split(",");
for (String s:list
) {
System.out.println(s);
}
}
}
运行结果:
c.转义字符
在正则表达式中,有些字符具有特殊含义,例如:
'.', '*', '?', '^', '$', '(', '[', '{', '|', '\\', '/'等。
如果需要这些字符作为普通字符进行分割,则需要进行转义;
public class SplitTest {
public static void main(String []args) {
String str="abc.def.ghi";
String[] list=str.split("\\\\.");
for (String s:list
) {
System.out.println(s);
}
}
}
运行结果:
5.代码演示
public class SplitTest {
public static void main(String []args) {
String str="2024-3-6";
//双引号而非单引号,参数是字符串类型,不能大意认为"-"是单个字符。
String[] list=str.split("-");
for(String s:list){
System.out.println(s);
}
//有限字符串数组长度的重载split();
String[] list1=str.split("-",4);//虽然为4,但是最多分割两次
for(String s:list1){
System.out.println(s);
}
//多个分割字符的情况
String str2="abcd.efg|hijk.mno";
String[] list2=str2.split("\\\\.|\\\\|");
for (String s:list2
) {
System.out.println(s);
}
}
}
运行结果:
二、经典例题
1.问题描述
用户输入“2024-8-9”,程序返回"2024-08-09".
2.思路
1.先用split()方法将字符串分割为字符串数组;
2.遍历数组,用stringbuilder存储,当存储到下一个字符时进行判断,如果字符长度为1,则拼接0,然后再拼接"-",如果不为一,则直接拼接"-".
import java.util.Scanner;
public class SplitTest {
public static void main(String []args) {
Scanner input=new Scanner(System.in);
//创建stringbuilder字符串来存储动态结果;
StringBuilder stringBuilder=new StringBuilder();
String str=input.next();
//使用split()方法分割字符串
String[] list=str.split("-");
for (int i = 0; i <list.length ; i++) {
//如果长度为1,则拼接字符串;
if (list[i].length()==1){
stringBuilder.append("0");
stringBuilder.append(list[i]);
}else {
stringBuilder.append(list[i]);
}
//除了最后一个字符串,拼接"-";
if(i!=list.length-1){
stringBuilder.append("-");
}
}
//打印结果
System.out.println(stringBuilder);
}
}
3.运行结果
平台声明:以上文章转载于《CSDN》,文章全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,仅作参考。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/tffovever/article/details/144514729