我有类似的字符串:
BLAH00001
DIK-11
DIK-2
MAN5
所以所有的字符串都是(序列中的任何字符)+(数字序列)
我想要这样的东西:
1
11
2
5
为了得到那些整数值,我想把char序列和数字序列分开,做Integer.parseInt(number_sequence)
有什么东西可以完成这项工作吗?
问候
答案 0 :(得分:4)
试试这个:
public class Main {
public static void main(String[]args) {
String source = "BLAH00001\n" +
"\n" +
"DIK-11\n" +
"\n" +
"DIK-2\n" +
"\n" +
"MAN5";
Matcher m = Pattern.compile("\\d+").matcher(source);
while(m.find()) {
int i = Integer.parseInt(m.group());
System.out.println(i);
}
}
}
产生:
1
11
2
5
答案 1 :(得分:2)
String[] a ={"BLAH00001","DIK-11","DIK-2","MAN5"};
for(String g:a)
System.out.println(Integer.valueOf(g.split("^[A-Z]+\\-?")[1]));
/*******************************
Regex Explanation :
^ --> StartWith
[A-Z]+ --> 1 or more UpperCase
\\-? --> 0 or 1 hyphen
*********************************/
答案 2 :(得分:1)
Pattern p = Pattern.compile("^[^0-9]*([0-9]+)$");
Matcher m = p.matcher("ASDFSA123");
if (m.matches()) {
resultInt = Integer.parseInt(m.group(1)));
}
答案 3 :(得分:0)