2
A
回答
3
如果你想使用一個庫總有Commons Math它可以讓你做的東西是這樣的:
ComplexFormat cf = new ComplexFormat();
Complex c = cf.parse("1.110 + 2.222i");
Complex second = new Complex(2.0, 5.0);
Complex answer = c.log(); // natural logarithm.
answer = c.cos(); // cosine
answer = c.pow(second); // first raised to the power of second
ComplexFormat format = new ComplexFormat(); // default format
String s1 = format.format(c); // s1 contains "1.110 + 2.222i"
String s2 = format.format(second); // s2 contains "2.0 + 5.0i"
1
這裏是一個正則表達式的方法(無外部庫,但還沒有使用的能力複雜數字不僅僅是解析):
Pattern pattern = Pattern.compile("([+-]?\\d*\\.\\d+)([+-]?\\d*\\.\\d+)i",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher matcher = pattern.matcher("1.7+2.8990i");
if(matcher.matches()) {
System.out.println("a:" + Float.parseFloat(matcher.group(1)));
System.out.println("b:" + Float.parseFloat(matcher.group(2)));
} else {
System.out.println("Not a complex number");
}
此方法支持a和b的正值和負值。這種方法的一個弱點是它不能容忍數字周圍的空格(你可以安全地從輸入中去掉空格而不改變方程)。
相關問題
- 1. 如何掃描已掃描的行中的整數scan.nextLine()
- 2. 如何在java中關閉掃描器?
- 3. 如何在Java中掃描文件夾?
- 4. 如何在Java中掃描文件夾?
- 5. 如何在java中掃描對象?
- 6. Java中的掃描儀
- 7. java中的條碼掃描
- 8. java中的掃描器類
- 9. 使用掃描儀掃描Java輸入
- 10. Java中的replaceAll()函數掃描器
- 11. 如何複製Spring的組件掃描
- 12. 如何掃描jdbc的java日期
- 13. 如何掃描聲納掃描儀
- 14. 如何掃描整數?
- 15. 如何掃描java中long類型的int類型數字?
- 16. 如何驗證java中的txt掃描器數據
- 17. Java Web掃描器
- 18. Java掃描儀Lookahead
- 19. 空Java掃描器
- 20. Java掃描器類
- 21. NoSuchElementException掃描器java
- 22. Java掃描器類
- 23. Java掃描對象
- 24. JAVA +掃描文檔
- 25. Java掃描器nextLong
- 26. IO掃描器Java
- 27. 掃描儀類Java
- 28. 如何掃描單詞並存儲從C中掃描的行?
- 29. Java:我如何掃描地圖?
- 30. HackerRank掃描器類的Java
http://commons.apache.org/math/userguide/complex.html –
您是否嘗試過編寫自己的解析器?如果是這樣,您能否請您說明您嘗試過的評論以及它爲什麼不起作用?編輯,我喜歡@ JasonSperske可能的解決方案。 –
我到目前爲止: String operator = null; \t \t String Podatki []; \t \t而(操作者= 「izhod」!){ \t \t \t // preberemo操作者 \t \t \t是System.out.print( 「Vtipkaj ukaz(+, - ,*,/,W):」); \t \t \t Scanner scan = new Scanner(System.in); \t \t \t \t operator = scan.nextLine(); \t \t \t // preberemo stevili \t \t \t Podatki =新的String [2]; \t \t \t對(INT I = 0; I
user1791473