gpt4 book ai didi

Java:Stringtokenizer 到数组

转载 作者:行者123 更新时间:2023-11-30 06:58:07 28 4
gpt4 key购买 nike

给定一个多项式,我正在尝试编写代码来创建一个多项式,该多项式按次数计算,并将相似的项加在一起例如...给定

String term = "323x^3+2x+x-5x+5x^2" //Given
What I'd like = "323x^3+5x^2-2x" //result

到目前为止,我已经通过这个...标记了给定的多项式

    term = term.replace("+" , "~+");
term = term.replace("-", "~-");
System.out.println(term);
StringTokenizer multiTokenizer = new StringTokenizer(term, "~");
int numberofTokens = multiTokenizer.countTokens();
String[] tokensArray = new String[numberofTokens];
int x=0;
while (multiTokenizer.hasMoreTokens())
{

System.out.println(multiTokenizer.nextToken());

}

导致

323x^3~+2x~+x~-5x~+5x^2
323x^3
+2x
+x
-5x
+5x^2

我如何将系数从 x 值中分离出来,将每个系数保存在一个数组中,然后将度数放入另一个数组中,索引与其系数相同?然后我将使用这个算法来添加类似的术语....

for (i=0;i<=biggest_Root; i++)
for(j=0; j<=items_in_list ; j++)
if (degree_array[j] = i)
total += b1[j];
array_of_totals[i] = total;

非常感谢任何帮助!

最佳答案

您还可以更新项,使它们都有系数:

s/([+-])x/\11/g

所以 +x^2 变成 +1x^2。

可以通过简单的正则表达式提取您的个人系数。像这样的东西就足够了:

/([+-]?\d+)x/     // match for x
/([+-]?\d+)x\^2/ // match for x^2
/([+-]?\d+)x\^3/ // match for x^3
/([+-]?\d+)x\^4/ // match for x^4

然后

sum_of_coefficient[degree] += match

其中“match”是正则表达式匹配的 parseInt(系数为 1 且没有数字的特殊情况,例如 +x)

sum_of_coefficient[3] = 323
sum_of_coefficient[1] = +2+1-5 = -2
sum_of_coefficient[2] = 5

关于Java:Stringtokenizer 到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960206/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com