String strArray="135(i),15a,14(g)(q)12,67dd(),kk,159"; //splited by ','
在第一次出现字母数字值/字符后除以字符串
预期产量:
original expected o/p
15a s1=15 s2=a
67dd() s1=67 s2=dd()
kk s1="" s2=kk
159 s1=159 s2=""
请帮帮我。。。。。。。。。。。。。。。。
3条答案
按热度按时间cdmah0mi1#
使用
java.util.regex.Pattern
以及java.util.regex.Matcher
```String strArray="135(i),15a,14(g)(q)12,67dd(),kk,159";
String arr[] = strArray.split(",");
for (String s : arr) {
Matcher m = Pattern.compile("([0-9])([^0-9])").matcher(s);
System.out.println("String in = " + s);
if(m.matches()){
System.out.println(" s1: " + m.group(1));
System.out.println(" s2: " + m.group(2));
} else {
System.out.println(" unmatched");
}
}
String in = 135(i)
s1: 135
s2: (i)
String in = 15a
s1: 15
s2: a
String in = 14(g)(q)12
unmatched
String in = 67dd()
s1: 67
s2: dd()
String in = kk
s1:
s2: kk
String in = 159
s1: 159
s2:
qacovj5a2#
您可以使用pattern/matcher的分组方法:
方法组(字符串名称)提供模式括号中的字符串,其中包含匹配中的特定名称(这里是“digits”或“chars”)。方法组(inti)将给出匹配中模式的第i个圆括号中的字符串。
请参见上的oracle教程http://docs.oracle.com/javase/tutorial/essential/regex/ 有关在java中使用regex的更多示例。
mi7gmzs63#
你可以使用
Pattern
和一个Matcher
查找字母的第一个索引,前面有一个数字,并在该位置拆分。代码
输出