gpt4 book ai didi

java - 从字符串到整数函数

转载 作者:行者123 更新时间:2023-12-03 18:49:03 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,它将接收一个作为字符串的函数并解决它。对于前。 "5*5+2/2-8+5*5-2"应该返回 41

我写了乘法和除法的代码,它运行得很好:

  public class Solver 
{
public static void operationS(String m)
{
ArrayList<String> z = new ArrayList<String>();
char e= ' ';
String x= " ";
for (int i =0; i<m.length();i++)
{
e= m.charAt(i);
x= Character.toString(e);


z.add(x);
}
for (int i =0; i<z.size();i++)
{
System.out.print(z.get(i));
}

other(z);
}

public static void other(ArrayList<String> j)
{
int n1=0;
int n2=0;
int f=0;
String n= " ";
for (int m=0; m<j.size();m++)
{

if ((j.get(m)).equals("*"))
{
n1 = Integer.parseInt(j.get(m-1));
n2 = Integer.parseInt(j.get(m+1));
f= n1*n2;
n = Integer.toString(f);

j.set(m,n);
j.remove(m+1);
j.remove(m-1);

m=0;
}

for (int e=0; e<j.size();e++)
{

if ((j.get(e)).equals("/"))
{
n1 = Integer.parseInt(j.get(e-1));
n2 = Integer.parseInt(j.get(e+1));
f= n1/n2;
n = Integer.toString(f);

j.set(e,n);
j.remove(e+1);
j.remove(e-1);

e=0;
}

}
}

System.out.println();
for (int i1 =0; i1<j.size();i1++)
{
System.out.print(j.get(i1)+",");
}

但是对于加减法,由于加减法没有先后顺序,先到先得,所以我写了如下:

  int x1=0;
int x2=0;
int x3=0;
String z = " ";

for (int g=0; g<j.size();g++)
{
if ((j.get(g)).equals("+"))
{
x1= Integer.parseInt(j.get(g-1));
x2= Integer.parseInt(j.get(g+1));
x3= x1+x2;
z = Integer.toString(x3);

j.set(g,z);
j.remove(g+1);
j.remove(g-1);

g=0;
}
g=0;

if ((j.get(g)).equals("-"))
{
x1= Integer.parseInt(j.get(g-1));
x2= Integer.parseInt(j.get(g+1));
x3= x1-x2;
z = Integer.toString(x3);

j.set(g,z);
j.remove(g+1);
j.remove(g-1);

g=0;
}

g=0;
}

System.out.println();
for (int i1 =0; i1<j.size();i1++)
{
System.out.print(j.get(i1)+",");
}

在此之后,它打印:

25,+,1,-,8,+,25,–,2,

.我究竟做错了什么?乘法和除法似乎很完美

最佳答案

你有两个问题:

1) g=0; if 和 else block 之后的语句会让你进入无限循环。

2) 从你给出的输出来看,第一个减号 (-) 是 Unicode 字符 HYPHEN-MINUS (U+002D),而第二个减号 (–) 是 Unicode 字符 EN DASH (U+2013),所以 (j.get(g)).equals("-") 对第二个减号失败,因为它们不相等。

关于java - 从字符串到整数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39725687/

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