我有一个固定的格式String
,它将永远是:SPXXX-SPYYY.zip
我需要从中提取XXX和YYY,String
但是如果例如XXX是 003 那么我想要3而不是 003。(与YYY相同)。
我写了这两个代码:
1.
String st = "SP003-SP012.zip";
String[] splitted = st.split("\\.");
splitted = splitted[0].split("-");
splitted = splitted[0].split("P");
Integer in = new Integer(splitted[1]);
System.out.println(in); //Will print 3
//The same for the other part of the String
2.
Pattern pattern = Pattern.compile("^[a-zA-Z]+([0-9]+).*");
Matcher matcher = pattern.matcher(st);
int num = 0;
while (matcher.find()) {
num = Integer.parseInt(matcher.group(1));
System.out.println(num);
}
- 为什么第二个代码只返回第一个数字?( XXX ) 错过了第二个?
- 什么代码更适合这个目的?