San*_*age 15 java string split
当我表演
String test="23x34 ";
String[] array=test.split("x"); //splitting using simple letter
Run Code Online (Sandbox Code Playgroud)
我有数组中的两个项目为23和34
但是当我这样做的时候
String test="23x34 ";
String[] array=test.split("X"); //splitting using capitalletter
Run Code Online (Sandbox Code Playgroud)
我在阵列23x34中得到了一个项目
那么有什么方法可以使用split方法作为不区分大小写或者是否有任何其他方法可以帮助?
njz*_*zk2 47
split正如文档所示,使用regexp.你的例子的正则表达式是:
"[xX]"
Run Code Online (Sandbox Code Playgroud)
此外,该(?i)标志切换不区分大小写.因此,以下也是正确的:
"(?i)x"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,x可以正确逃脱任何litteral.
har*_*rsh 16
使用正则表达式模式[xX]中split
String x = "24X45";
String[] res = x.split("[xX]");
System.out.println(Arrays.toString(res));
Run Code Online (Sandbox Code Playgroud)
您还可以在正则表达式中使用嵌入式标志:
String[] array = test.split("(?i)x"); // splits case insensitive
Run Code Online (Sandbox Code Playgroud)
除了现有的答案之外,您还可以使用Pattern.CASE_INSENSITIVEflag 将正则表达式模式转换为不区分大小写的模式,您可以直接使用它来分割字符串,例如
String[] arr = Pattern.compile("x", Pattern.CASE_INSENSITIVE).split("23x34 ");
Run Code Online (Sandbox Code Playgroud)
演示:
import java.util.Arrays;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("x", Pattern.CASE_INSENSITIVE);
System.out.println(Arrays.toString(pattern.split("23x34 ")));
System.out.println(Arrays.toString(pattern.split("23X34 ")));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
[23, 34 ]
[23, 34 ]
Run Code Online (Sandbox Code Playgroud)
小智 5
我个人更喜欢使用
String modified = Pattern.compile("x", Pattern.CASE_INSENSITIVE).matcher(stringContents).replaceAll(splitterValue);
String[] parts = modified.split(splitterValue);
Run Code Online (Sandbox Code Playgroud)
这样,只要您具有唯一的splitter值,就可以确保任何正则表达式都可以使用
| 归档时间: |
|
| 查看次数: |
18824 次 |
| 最近记录: |