2015-05-13 52 views
0

我正在爲我的BigInteger Calculator類做一些錯誤檢查。如果一個輸入在數字之間有一個空格,並且在這些數字之間沒有有效的運算符(+, - ,*,/,%,^),它應該返回「Error」。有什麼辦法來檢查這種情況下使用字符串方法?計算器類錯誤檢查

應該返回錯誤,因爲有空間在數量上和在它們之間沒有運營商之間:

2 + 1 1 1 1 1 + 2 //在這種情況下,1的沒有運營商

之間

2 2 2 //具有在空間

之間

有效:

2 + 2

22 + 2 + 1

2 + 11111 + 2

+1

模式匹配可以爲你做這項工作。請參閱https://docs.oracle.com/javase/tutorial/essential/regex/matcher.html。 –

回答

0

一種選擇是使用String[] temp = [stringName].split(" ");分裂串並檢查每一個其他索引是一個有效的操作。

0

也許你可以使用正則表達式來找到數字之間的空格。

String input = "1+2 2 2"; 
boolean found = Pattern.compile("[0-9]+\\s+[0-9]+").matcher(input).find(); 
0

你不需要專門找到數字之間的空格。事實上,除了分隔令牌之外,你應該完全忽略空間。

您只需要根據語法進行掃描和解析,該語法不具有兩個連續數字的語法。或運營商。在任何時候,你都應該知道什麼是預期,什麼不是。