【发布时间】:2012-11-06 14:09:48
【问题描述】:
例如我有输入字符串:"qwerty1qwerty2";
作为输出我想要 [1,2].
我目前的实现如下:
import java.util.ArrayList;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
String inputString = args[0];
String digitStr = "";
List<Integer> digits = new ArrayList<Integer>();
for (int i = 0; i < inputString.length(); i++) {
if (Character.isDigit(inputString.charAt(i))) {
digitStr += inputString.charAt(i);
} else {
if (!digitStr.isEmpty()) {
digits.add(Integer.parseInt(digitStr));
digitStr = "";
}
}
}
if (!digitStr.isEmpty()) {
digits.add(Integer.parseInt(digitStr));
digitStr = "";
}
for (Integer i : digits) {
System.out.println(i);
}
}
}
但经过仔细检查后,我忽略了几点:
某些代码行重复两次。
我使用列表。我认为这不是一个好主意,最好使用数组。
那么,你怎么看?
您能提供任何建议吗?
【问题讨论】:
-
不允许使用正则表达式?
-
我的想法完全一样,使用正则表达式和
String#replaceAll(...) -
对于代码审查,请使用代码审查堆栈交换站点 :)