Взяв в качестве примера строку -2x^2+3x^1+6
, как извлечь -2
, 3
и 6
из этого уравнения, хранящегося в строке?
Как извлечь полиномиальные коэффициенты в Java?
comment
Я попытался извлечь, используя + в качестве разделителя, чтобы извлечь -2x2 3x и 6 .. тогда что делать
- person Manish   schedule 16.11.2012
comment
Как насчет запуска -2x^2 через извлечение с разделителем 'x'? (кстати, у вас есть планы, как справиться, например, с 3x^3-2x^2-3 ?
- person Aki Suihkonen   schedule 16.11.2012
Ответы (2)
Не давая точного ответа, но некоторые намеки:
Используйте 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
person
Azodious
schedule
16.11.2012
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
person
MoveFast
schedule
16.11.2012
Спасибо, Маной, но это не сработает в условии, если - знак приходит пример -2x^2-3x^1+6
- person Manish; 16.11.2012
@Manish сделал небольшое изменение. Это должно работать для этого случая сейчас. Я сделал совпадение со знаком + необязательным. Таким образом, отрицательные номера также будут сопоставлены.
- person MoveFast; 16.11.2012
Мне было интересно, что если последовательность будет введена как 6+3x^1-2x^2... в этом случае шаблон соответствия изменится...
- person Manish; 17.11.2012
@Manish ya .. тогда шаблон изменится .. если это так, я думаю, что лучший подход - сначала разделить на основе знака +/-, а затем извлечь цифру из разделенной части
- person MoveFast; 18.11.2012