场景
测验题,明天的期末考试,这道题对我来说毫无意义,请给我看看符合标准的代码段。我试过的一切都失败了。我最大的问题是,我不知道如何引用“这个”。所以我不知道我做得对不对,我的老师不会给我一个“是”或“否”的答案,我将把我的尝试发布到下面的代码中,希望有人能纠正我的错误。我会永远欠你的!
问题
编写一个BigInt类函数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();
}发布于 2015-05-03 23:10:15
如果您有一个字段number,那么这两个表达式:
this.number
number在您的代码中实际上是相同的。只有当存在与字段名称相同的局部变量或参数时,才需要在字段名前加上this.前缀,从而对其进行跟踪。
虽然您没有直接回答您的问题,但更需要考虑的是,由于您有一个字符串来存储您的号码,请考虑使用字符串方法来处理您的方法:
public int countDigits() {
return number.replaceAll("^0+", "").length();
}这个单行解决方案首先生成一个去掉所有前导零的字符串,然后简单地使用它的长度。
https://stackoverflow.com/questions/30019674
复制相似问题