Преобразовать из строки в полином - PullRequest
1 голос
/ 05 января 2012

Я пишу программу на Java, которая будет использовать полиномы.Мне нужно иметь возможность выражать полиномы на основе того, что вводит пользователь.

Например, пользователь может ввести следующую строку."2, -7, 8, 0, -1"

Полиномы для этого здесь были бы 2 - 7 x + 8 x^2 - x^4

Но здесь есть одна загвоздка.Я не могу разбить каждое число в строке на отдельные целые, используя синтаксический анализ, это было бы слишком просто!Поскольку в строке может быть любое число чисел, в этом примере 5 чисел, а в другом - 6 или меньше.

Есть идеи относительно того, как можно выразить полином в Java?

Ответы [ 5 ]

2 голосов
/ 05 января 2012
String[] split = values.split(",\\s*");

Это регулярное выражение также позаботится о дополнительных пробелах.

1 голос
/ 06 января 2012

Вы можете разбить строку, используя String.split(), не зная количества компонентов. Он выделит соответствующее количество компонентов для вас.

Затем преобразуйте его в массив типа int[], который представляет ваш полином ...

Ничего особенно сложного здесь нет, все просто.

1 голос
/ 05 января 2012

Если вы не можете использовать String.split() и Integer.parseInt(), тогда:

  • делает класс Polynomial, который принимает аргумент String в своем конструкторе

и (

  • a getNumber метод, который использует indexOf и substring для возврата строковой части
  • a getCount метод, который считает запятые в строке

или

  • реализует java.lang.Iterable интерфейс и использует методы, описанные выше в Iterator реализации

)

1 голос
/ 05 января 2012

Любые идеи о том, как я мог бы выразить полином в Java?

На мой взгляд, проще всего иметь массив int (или float / double) коэффициенты.Количество элементов в массиве будет зависеть от степени полинома.

Я бы обернул это в классе и использовал бы String.split() с Integer.valueOf() (или Double.valueOf() / Float.valueOf()) дляпостроить его из String.

1 голос
/ 05 января 2012

Вы должны использовать String.split () и запустить его через цикл вызовов Integer.valueOf ().

...