2012-11-16 26 views
1

例如,如果給出的字符串爲-2x^2+3x^1+6 那麼如何從存儲在字符串中的該等式中提取-2,36如何在java中提取多項式係數?

+0

我曾嘗試使用提取+作爲分隔符來提取-2x2 3X和6 ..那麼怎麼辦 – Manish

+0

如何通過提取分隔符'x'來運行「-2x^2」? (順便說一句,你有計劃如何處理,例如3x^3-2x^2-3? –

回答

8

不給確切的答案,但一些提示:

  • 使用replace meyhod:

    所有-+-取代。

  • 使用split方法:

    // after replace effect 
    String str = "+-2x^2+3x^1+6" 
    String[] arr = str.split("+"); 
    // arr will contain: {-2x^2, 3x^1, 6} 
    
  • 現在,每個索引值可以單獨分裂:

    String str2 = arr[0]; 
    // str2 = -2x^2; 
    // split with x and get vale at index 0 
    
+1

+1。我喜歡首先替換的想法。 – gefei

2
String polynomial= "-2x^2+3x^1+6"; 
    String[] parts = polynomial.split("x\\^\\d+\\+?"); 
    for (String part : parts) { 
     System.out.println(part); 
    } 

這應該有效。示例輸出

polynomial= "-2x^2+3x^1+6" 
Output: 
-2 
3 
6 
polynomial = "-30x^6+20x^3+3" 
Output: 
-30 
20 
3 
+0

謝謝你Manoj但這不會工作的條件,如果 - 符號來例「-2x^2-3x^1 + 6」 – Manish

+0

@Manish做了一個小改動,它現在應該適用於這種情況,我已經使+符號匹配成爲可選項,這種方式也會匹配否定的nos。 – ManojGumber

+0

謝謝@Manoj的幫助:) .. – Manish