当我表演时
String test="23x34 ";
String[] array=test.split("x"); //splitting using simple letter
我有数组中的两个项目为23和34
但是当我做的时候
String test="23x34 ";
String[] array=test.split("X"); //splitting using capitalletter
我在阵列23x34中有一个项目
那么有什么方法可以使用split方法作为不区分大小写或者是否有任何其他方法可以帮助?
答案 0 :(得分:44)
split
使用正则表达式。你的例子的正则表达式是:
"[xX]"
此外,(?i)
标志切换不区分大小写。因此,以下也是正确的:
"(?i)x"
在这种情况下,x
可以是正确转义的任何文件。
答案 1 :(得分:15)
在[xX]
split
String x = "24X45";
String[] res = x.split("[xX]");
System.out.println(Arrays.toString(res));
答案 2 :(得分:7)
您还可以在正则表达式中使用嵌入式标记:
String[] array = test.split("(?i)x"); // splits case insensitive
答案 3 :(得分:4)
我个人更喜欢使用
String modified = Pattern.compile("x", Pattern.CASE_INSENSITIVE).matcher(stringContents).replaceAll(splitterValue);
String[] parts = modified.split(splitterValue);
通过这种方式,只要您拥有唯一的分割值,就可以确保任何正则表达式都能正常工作
答案 4 :(得分:3)
除了现有答案之外,您还可以使用 Pattern.CASE_INSENSITIVE
标志将您的正则表达式模式转换为不区分大小写的模式,您可以直接使用该模式来分割字符串,例如
String[] arr = Pattern.compile("x", Pattern.CASE_INSENSITIVE).split("23x34 ");
演示:
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 ")));
}
}
输出:
[23, 34 ]
[23, 34 ]
答案 5 :(得分:1)
对于 JavaScript:
var test="23x34 ";
var array = test.split(\x\i);
答案 6 :(得分:0)
Java的String类'split方法也接受正则表达式。
为了简短起见,这可以帮助您:http://www.coderanch.com/t/480781/java/java/String-split
答案 7 :(得分:0)
这有点复杂,但它的实现方式如下:
text.split(searchTerm)
答案 8 :(得分:-1)
您可以使用正则表达式作为split
的参数,如下所示:
"32x23".split("[xX]");
或者您可以使用StringTokenizer
来设置分隔符集,如下所示:
StringTokenizer st = new StringTokenizer("32x23","xX");
// ^^ ^^
// string delimiter
这样做的好处是,如果要以编程方式构建分隔符列表,例如对于分隔符列表中的每个小写字母添加其大写的corespondent,您可以执行此操作,然后将结果传递给StringTokenizer