首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图引用引用当前字符串对象的“此”对象。不知道我做得对不对

试图引用引用当前字符串对象的“此”对象。不知道我做得对不对
EN

Stack Overflow用户
提问于 2015-05-03 21:33:37
回答 1查看 78关注 0票数 1

场景

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

问题

编写一个BigInt类函数int countDigits(),返回BigInt对象中的有效数字数(即"this")。假设我们对BigInt (前导零未移除)使用字符串表示,有效数字以最左边的非零开始,如果BigInt的值为0,则数字有效位数为1

我试过什么

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-03 23:10:15

如果您有一个字段number,那么这两个表达式:

代码语言:javascript
复制
this.number
number

在您的代码中实际上是相同的。只有当存在与字段名称相同的局部变量或参数时,才需要在字段名前加上this.前缀,从而对其进行跟踪。

虽然您没有直接回答您的问题,但更需要考虑的是,由于您有一个字符串来存储您的号码,请考虑使用字符串方法来处理您的方法:

代码语言:javascript
复制
public int countDigits() {
    return number.replaceAll("^0+", "").length();
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30019674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档