Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数学方程分解为系数和指数?_Java_String_Math_Split - Fatal编程技术网

Java 如何将数学方程分解为系数和指数?

Java 如何将数学方程分解为系数和指数?,java,string,math,split,Java,String,Math,Split,我正在用java计算一些方程式。我想使用单链表。节点应该有两个整数数据:系数和指数 这里有一个例子: 方程式=18x^75-4x^56+18x^37+18x^19-18x^9-12 链表=节点118,75->节点2-4,56。。。应该是这样的 我只是要求分开 String equation = "18x^75-4x^56+18x^37+18x^19-18x^9-12"; String[] terms = equation.split("[0-9]+(?<=[-+*/()])|(?=[-+*

我正在用java计算一些方程式。我想使用单链表。节点应该有两个整数数据:系数和指数

这里有一个例子: 方程式=18x^75-4x^56+18x^37+18x^19-18x^9-12

链表=节点118,75->节点2-4,56。。。应该是这样的

我只是要求分开

String equation = "18x^75-4x^56+18x^37+18x^19-18x^9-12";
String[] terms = equation.split("[0-9]+(?<=[-+*/()])|(?=[-+*/()])");
for (String term : terms) {
     System.out.println(term);
}
您可以首先使用+-分隔符拆分方程式,以便获得每个单项的数组。请注意,如果术语为负数,则希望保留符号。 然后,您可以通过术语数组进行流式处理,对于每个术语,使用分隔符x^进一步拆分它。这样,您将得到两个拆分项—x^左侧的一个是系数,右侧的一个是指数。 将系数和指数存储在条目中。 将条目存储在链接列表中。 以下是一个工作示例:

String equation = "18x^75-4x^56+18x^37+18x^19-18x^9-12";
String[] terms = equation.split("\\+|(?=\\-)");
Arrays.stream(terms).forEach(System.out::println);
List list = new LinkedList<Map.Entry<Integer, Integer>>();
Arrays.stream(terms).filter(t -> t.contains("x^")).forEach(
        s -> list.add(new AbstractMap.SimpleEntry(Integer.parseInt(s.split("x\\^")[0]), Integer.parseInt(s.split("x\\^")[1]))));
//Finally, add the constant term.
list.add(new AbstractMap.SimpleEntry(Integer.parseInt(terms[terms.length - 1]), 0));

这个代码有效吗?不工作?您面临的问题是什么?使用选项来澄清您的问题。描述你面临的问题。你期望得到什么结果?你得到了什么?非常感谢。@KontMosyo,欢迎。请选择对您有帮助的答案,将您的问题标记为“已回答”。