Java循环字符串替换

Java循环字符串替换,java,Java,我希望这部分代码用于我的计算器,因为我要用变量替换x,所以我需要确保2x是2*x。当前面有+时,此代码为什么要添加“*”? 如果pLine=“1+x” 为什么还要加一个“*” for(int j=0;j

我希望这部分代码用于我的计算器,因为我要用变量替换x,所以我需要确保2x是2*x。当前面有+时,此代码为什么要添加“*”?
如果pLine=“1+x”

为什么还要加一个“*”

for(int j=0;j
这行中的布尔逻辑不正确

if (pLine.charAt(j-1) != '+' || pLine.charAt(j-1) != '-' || pLine.charAt(j-1) != '/' || pLine.charAt(j-1) != '*')
此语句始终为真,因为无论该字符是什么,它要么不等于
'+'
,要么不等于
'-'

应该是这样的:

char c = pLine.charAt(j-1);
if (!(c == '+' || c == '-' || c == '/' || c == '*'))
或者这个:

if (c != '+' && c != '-' && c != '/' && c != '*')

有关这两个表达式为何相等的更多解释,请阅读“关于”。

这行中的布尔逻辑不正确

if (pLine.charAt(j-1) != '+' || pLine.charAt(j-1) != '-' || pLine.charAt(j-1) != '/' || pLine.charAt(j-1) != '*')
此语句始终为真,因为无论该字符是什么,它要么不等于
'+'
,要么不等于
'-'

应该是这样的:

char c = pLine.charAt(j-1);
if (!(c == '+' || c == '-' || c == '/' || c == '*'))
或者这个:

if (c != '+' && c != '-' && c != '/' && c != '*')
有关这两个表达式为何相等的更多解释,请阅读“关于”。

在下一行:

if(pLine.charAt(j-1) != '+' || pLine.charAt(j-1) != '-' || pLine.charAt(j-1) != '/' || pLine.charAt(j-1) != '*')
您应该在下一行中使用
&&
而不是
|

if(pLine.charAt(j-1) != '+' || pLine.charAt(j-1) != '-' || pLine.charAt(j-1) != '/' || pLine.charAt(j-1) != '*')
您应该使用
&&
而不是
|