为CS类做一个java项目,需要我们用2个类(一个是测试者)制作一个dec到二进制转换器。老师坚持说我们不联系他寻求帮助。不确定我能做些什么,因为它告诉我“错误:找不到符号”并指向代码后半部分的pn.charAt。任何帮助或提示将不胜感激。
转换器
App.ToolboxMenuComponent = Ember.Component.extend({
actions: {
toggleTool: function(action, mode) {
this.sendAction("action", this.get("item"), action, mode);
}
}
});
App.ToolboxMenuItemComponent = Ember.Component.extend({
mode: null,
didInsertElement: function() {
this.set("mode", this.get("control").defaultState);
},
actions: {
click: function() {
let mode = this.get("mode");
this.set("mode", !mode);
this.sendAction("action", this.get("control").action, this.get("mode"));
}
}
});
测试类
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();
}
}
答案 0 :(得分:0)
您的pn
被定义为构造函数BinaryNumber()
中的参数,因此它具有"本地范围",它不存在于函数外部。
您应该在convertToDecimal()
中使用的内容将是您的全局变量n
。
如果pn
或n
是字符串,那么您对charAt
的使用也是不正确的,因为它被认为是一个函数。如果我不得不推断,我认为您是否尝试使用i
作为charAt()
定位?
修复这两个错误的更改如下所示:
sum = sum + (int) Math.pow(2, bitPosition) * (n.charAt(i) - 48);