我想從簡單的數學表達式中提取數字字符串; 我第一次更換所有數學符號用空格字符串,然後嘗試字符串用空格分開,然後我把號碼一個ArrayList從數學表達式字符串中提取數字
public ArrayList<Integer> retriveNumbers(String Expr) {
ArrayList<Integer> numbers = new ArrayList();
Expr = Expr.replaceAll("^", " ");
Expr = Expr.replaceAll("[*]", " ");
Expr = Expr.replaceAll("/", " ");
Expr = Expr.replaceAll("[+]", " ");
Expr = Expr.replaceAll("-", " ");
Expr = Expr.replaceAll("%", " ");
String[] elements = Expr.split(" ");
for(String e : elements){
numbers.add(Integer.parseInt(e));
}
return numbers;
}
但是當我測試它,我給錯誤輸出上numbers.add(Integer.parseInt(e));
Calculator c1 = new Calculator();
ArrayList<Integer> arr = c1.retriveNumbers("4*5-2+1");
for(int i: arr)
System.out.println(i);
你檢查由retrieveNumbers返回的list()方法,什麼是它的內容? –
嘗試在解析之前在控制檯上打印'e' – Apurv
您正在使用java 6或7 –