试图引用“this”引用当前字符串对象。不确定我是否正确行事

时间:2015-05-03 21:33:38

标签: java class object this

方案
测验问题,明天的期末考试和这个问题对我没有意义,请有人请告诉我符合标准的代码段。我尝试的一切都失败了。我最大的问题是我不知道如何引用“这个”。所以我不知道我是否做得对,否则我的老师不会给我一个是或否答案,我将发布我对下面代码的尝试,希望有人能纠正我的错误。我会永远欠你的债!

问题

  

写一个BigInt CLASS函数int countDigits(),它返回BigInt对象中的有效位数(即“this”)。假设我们正在使用BigInt的字符串表示(前导零未删除)有效数字从最左边的非零开始,如果BigInt的值为0,则有效数字的数字为1`

我尝试过什么

public int countDigits()
{
  int i = 0;
  while(this.number.charAt(i)=='0')//this.number will reference a string object
    i++;
  String str = this.number.substring(i,number.length();)//this.number will reference the string object
  System.out.println("leading zeros removed : "+str);
  System.out.println(" number of significant digits  = "+str.length());
  return str.length();
}

1 个答案:

答案 0 :(得分:0)

如果你有一个字段number,这两个表达式:

this.number
number

在您的代码中效果相同。当有一个与该字段同名的局部变量或参数时,您只需要在字段名前加this.,因此 shadowing

虽然没有直接回答你的问题,但还有更多值得思考的问题,因为你有一个String来存储你的号码,请考虑使用字符串方法:

public int countDigits() {
    return number.replaceAll("^0+", "").length();
}

这个单行解决方案首先生成一个删除了所有前导零的字符串,然后简单地使用它的长度。