gpt4 book ai didi

java - Java错误: cannot find symbol

转载 作者:行者123 更新时间:2023-12-02 11:02:35 24 4
gpt4 key购买 nike

为CS类做一个Java项目,这需要我们用2个类(一个是测试器)制作dec到二进制转换器。老师坚持说我们不联系他寻求帮助。我不太确定该怎么办,因为它告诉我“错误:找不到符号”,并指向代码后半部分的pn.charAt。任何帮助或提示将不胜感激。

转换器

public class BinaryNumber {
private String n;

public BinaryNumber(String pn) {
n = pn;
}


public String getN() {
return n;
}



public int convertToDecimal() {

int bitPosition = 0;
int sum = 0;

for (int i = n.length() - 1; i >= 0; i--) {

sum = sum + (int) Math.pow(2, bitPosition) * (pn.charAt + (i) - 48);
//System.out.println(n.charAt (i));

}
return sum;
}
public int add(BinaryNumber obn) {
return convertToDecimal() + obn.convertToDecimal();
}
public int sub(BinaryNumber obn) {
return convertToDecimal() - obn.convertToDecimal();
}

}

测试类
public class BinaryNumberTest {
public static void main(String[] args) {
BinaryNumber bn = new BinaryNumber("1011");
BinaryNumber bn1 = new BinaryNumber("1111");


System.out.println(bn.convertToDecimal());
System.out.println(bn.add(b1));
}

}

最佳答案

您的pn在构造函数BinaryNumber()中定义为参数,因此它具有“本地作用域”,在函数外部不存在。

您应该在convertToDecimal()中使用的是全局变量n

而且,如果pnn是字符串,那么您对charAt的使用也是不正确的,因为它假定是一个函数。如果必须进行推断,我认为您正在尝试将i用作charAt()定位?

解决这两个错误的更改如下所示:

sum = sum + (int) Math.pow(2, bitPosition) * (n.charAt(i) - 48);

关于java - Java错误: cannot find symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006247/

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