gpt4 book ai didi

java - BigInteger - java.lang.NumberFormatException 错误?

转载 作者:行者123 更新时间:2023-12-01 23:23:34 25 4
gpt4 key购买 nike

我有一个字符串,我将该字符串分解为标记,然后将标记转换为大整数以进行进一步处理。我收到 java.lang.NumberFormatException 错误

这是代码片段

public void tokenize() {
StringTokenizer st = new StringTokenizer(expr);
while ( st.hasMoreElements() ) {
String val = st.nextElement().toString();
if ( isOperator( val ) ) {
operator.push(val);
}
else {
BigInteger op = new BigInteger(val);
operand.push(op);
}
}
}

表达式的格式是这样的

4 + 5 + 6 / 2 - 8 * 1 * 2

并且此表达式正在被标记化,从而产生操作数和运算符

最佳答案

通过 isOperator 的定义,它可以很好地工作。

boolean isOperator(String s) {
return s.equals("*") || s.equals("-") || s.equals( "/") || s.equals("+");
}

public void tokenize(String expr) {
StringTokenizer st = new StringTokenizer(expr);
while ( st.hasMoreElements() ) {
String val = st.nextElement().toString();
if ( isOperator( val ) ) {
//operator.push(val);
System.out.println("Val");
System.out.println(val);
}
else {
//operand.push(op);
System.out.println("Operand");
BigInteger op = new BigInteger(val);
System.out.println(op);
}
}
}

您是否使用过==来比较运算符?

关于java - BigInteger - java.lang.NumberFormatException 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326052/

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