首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字提取器

数字提取器
EN

Stack Overflow用户
提问于 2014-12-11 01:20:07
回答 2查看 225关注 0票数 0

问题:该方法有一个整型参数。将整数按相反顺序分解为一系列单独的数字。结果将是一个以相反顺序包含各个数字的数组。

测试仪: digitExtractor(16384)→{4,8,3,6,1}

digitExtractor(123)→{3,2,1}

digitExtractor(23)→{3,2}

digitExtractor(-123)→{-1,2,3} (我对这个有点问题)

代码语言:javascript
复制
public int[] digitExtractor(int number)
{
   int[] arr;
   ArrayList<Integer> digits = new ArrayList<Integer>();
   if(number == 0)
   {
      digits.add(number);
   }
   if(number < 0)
   {
      number *= -1;
   }
   while (number != 0)
   {
      digits.add(number % 10);
      number /= 10;
   }
   arr = new int[digits.size()];
   for(int i = 0; i < digits.size(); i++)
   {
      arr[i] = digits.get(i);
   }
   return arr;
}

我的代码可以工作,除了负数。我不知道该怎么解决它。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-11 01:31:30

阅读我的评论,并尝试这样做:

代码语言:javascript
复制
public int[] digitExtractor(int number)
{
   int[] arr;
   boolean flag=false;
   ArrayList<Integer> digits = new ArrayList<Integer>();
   if(number == 0)
   {
      digits.add(number);
   }
   if(number < 0)
   {
      number *= -1;
      flag=true;
   }
   while (number != 0)
   {
      digits.add(number % 10);
      number /= 10;
   }
   arr = new int[digits.size()];
   for(int i = 0; i < digits.size(); i++)
   {
      arr[i] = digits.get(i);
   }
   if(flag){
       arr[digits.size()-1]*=-1;
   }
   return arr;
}
票数 0
EN

Stack Overflow用户

发布于 2014-12-11 02:13:05

另一种方法是:

代码语言:javascript
复制
public static int[] digitExtractor(int number) {
    boolean negative = number < 0;
    String myNumber = String.valueOf(number);
    myNumber = new StringBuilder(myNumber).reverse().toString();
    int size = negative ? myNumber.length() - 1 : myNumber.length();
    int[] arr = new int[size];

    for (int i = 0; i < size; i++) {
        arr[i] = Character.getNumericValue(myNumber.charAt(i));
    }

    if (negative) {
        arr[size - 1] = 0 - arr[size - 1];
    }
    return arr;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27407063

复制
相关文章

相似问题

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