不区分大小写的String split()方法

当我表演

String test="23x34 "; String[] array=test.split("x"); //splitting using simple letter 

我有23个和34个arrays中的两个项目

但是当我这样做的时候

 String test="23x34 "; String[] array=test.split("X"); //splitting using capitalletter 

我在arrays23x34中得到了一个项目

那么有什么方法可以使用split方法作为不区分大小写或者是否有任何其他方法可以帮助?

split使用正则表达式[xX]

 String x = "24X45"; String[] res = x.split("[xX]"); System.out.println(Arrays.toString(res)); 

正如文档所示, split用法是一个正则表达式。 你的例子的正则表达式是:

 "[xX]" 

此外, (?i)标志切换不区分大小写。 因此,以下也是正确的:

 "(?i)x" 

在这种情况下, x可以是正确转义的任何文件。

您还可以在正则表达式中使用嵌入式标志:

 String[] array = test.split("(?i)x"); // splits case insensitive 

我个人更喜欢使用

 String modified = Pattern.compile("x", Pattern.CASE_INSENSITIVE).matcher(stringContents).replaceAll(splitterValue); String[] parts = modified.split(splitterValue); 

通过这种方式,只要您具有唯一的分割器值,就可以确保任何正则表达式都能正常工作

Java的String类’split方法也接受正则表达式。

为了简短起见,这应该对您有所帮助: http : //www.coderanch.com/t/480781/java/java/String-split

您可以使用正则表达式作为参数进行split ,如下所示:

 "32x23".split("[xX]"); 

或者您可以使用StringTokenizer来设置其分隔符集,如下所示:

 StringTokenizer st = new StringTokenizer("32x23","xX"); // ^^ ^^ // string delimiter 

这样做的好处是,如果要以编程方式构建分隔符列表,例如对于分隔符列表中的每个小写字母添加其大写的corespondent,您可以执行此操作,然后将结果传递给StringTokenizer