为何String类中的split方法字符.无法识别

时间:2021-05-19作者:klpeng分类:IT综合浏览:396评论:0

最近在进行字符串切割时发现 "." 无法直接切割。

import java.util.Scanner;
public class Test {

	public static void main(String[]args) {
		Scanner sc = new Scanner(System.in);
		String s= "System.out.println(s);";
		String str1[]= s.split(".");
		for(String s1 :str1) {
			System.out.println(s1);
		}
		System.out.println(str1[0]);  //第11行
	}
}

它报错了.啥子都没输出。

为何String类中的split方法字符.无法识别

脑瓜子刚开始是嗡嗡的,这不就是正常的字符串切割吗。

随后我看了一下该方法对应的API

为何String类中的split方法字符.无法识别

为何String类中的split方法字符.无法识别

原来传入的split传入的参数是正则表达式,突然想到之前学的“.”平常的点符号是需要"[.]"或者"\56"表示的。

然后只需要把split(".")改成split("[.]")就可以了。

import java.util.Scanner;
public class Test {

	public static void main(String[]args) {
		Scanner sc = new Scanner(System.in);
		String s= "System.out.println(s);";
		String str1[]= s.split("[.]");
		for(String s1 :str1) {
			System.out.println(s1);
		}
		System.out.println(str1[0]);
	}
}

运行结果也正常啦

为何String类中的split方法字符.无法识别

另外对于正则表达式中直接的"."表示的是任意一个字符。

import java.util.Scanner;
public class Test {

	public static void main(String[]args) {
		Scanner sc = new Scanner(System.in);
		String s= "System.out.println(s);";
		String str1[]= s.split("m.");
		for(String s1 :str1) {
			System.out.println(s1);
		}
		System.out.println(str1[0]);
	}
}

为何String类中的split方法字符.无法识别

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢