任何人都可以幫助我用Java分離這個數學表達式125*1*4*4+82*1*10+2*59+2+4
。我想從表達式中得到數字,我不知道如何在這裏使用split()
方法。java中單獨的數學表達式
0
A
回答
2
您可以使用拆分與此正則表達式[*+]
:
String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".split("[*+]");
輸出
[125, 1, 4, 4, 82, 1, 10, 2, 59, 2, 4]
如果數學表達式包含空格,你可以之前刪除它們,並使用分離等等您可以使用:
String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\\s+", "").split("[*+]");
//---------------------------------------------^----------------------^
注意您可以從eparvan添加其他的算術運算符像[*+-/]
另一種解決方案:
如果你不知道什麼是表達式可以包含你可以使用:
String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\\s+", "").split("[^0-9]");
//----------------------------------------------------------------------------^----^
編輯
如果我想要得到的 「+」 和 「*」? 輸入:
125*1*4*4+82*1*10+2*59+2+4
輸出:String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\\s+", "").split("\\d+");
但我會prefert與模式去是更多的實踐再拆爲:
***+**+*++
在這種情況下,你可以用\d+
這樣的拆分例如你可以使用:
String str = "125*1/4*4+82*1*10+2/59-2+4";
String regex = "[^\\d]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
相關問題
- 1. 使用正則表達式在java中的數學表達式?
- 2. 數學表達式「通用」在Java中
- 3. 在java中驗證數學表達式
- 4. 簡單的數學表達式解析
- 5. 數學表達式
- 6. Java遞歸數學表達式評估
- 7. Java - 計算大型數學表達式
- 8. 使用Java解決數學表達式
- 9. 的數學表達式1.3.1
- 10. 化學式(或數學表達式)
- 11. 數學表達式(字符串)到Java中的數字
- 12. 數學正則表達式表達
- 13. 評估c中的數學表達式#
- 14. 收件C++中的數學表達式
- 15. NCalc在C#中的數學表達式 -
- 16. 僞代碼中的數學表達式
- 17. 軸標籤中的數學表達式
- 18. 驗證JavaScript中的數學表達式?
- 19. 解析數學表達式
- 20. 評估數學表達式
- 21. 解析數學表達式
- 22. 拆分數學表達式?
- 23. 數學表達式評估
- 24. 解決數學表達式
- 25. 數學表達式MathML
- 26. 數學表達式評估
- 27. 正則表達式匹配c中單獨的整數列表#
- 28. 從java中的字符串值的數學表達式中格式化數字
- 29. 如何解決Java中的數學表達式?
- 30. 初學者正則表達式Java
它沒有任何東西o使用split()方法。你需要解析問題的工具(Chomsky 1956)。查找「遞歸下降表達式解析」或Dijkstra調車碼算法。 – EJP