繁体   English   中英

具有单个数字的数组的简单数字

[英]Simple Number to Array with Individual Digits

我对编程非常陌生,但我正在努力提高我作为程序员的技能。 目前,我正在研究一个问题,我给自己尝试取一个变量号并使其每个数字成为一个单独的数字。 我不关心数字的顺序,所以如果它们被颠倒了,那对我来说无关紧要。 我知道人们已多次提出这个问题,但他们似乎总是使用很多我不理解的东西。 由于我的学校不提供任何Java课程,我只知道自己学到了什么,所以如果你能解释你在代码中使用的任何非常微不足道的术语,那就太棒了。 现在,我写道:

int number = 1234567890;
    while (number > 0) {
        System.out.println(number%10);
        number = number/10; 

这适用于单独打印数字,但我无法弄清楚如何将它们添加到数组。 我非常感谢您给予的任何帮助,请记住,我更喜欢简单而不是小尺寸。 先感谢您!

PS我在类似问题上看到的一些回应包括我认为的字符串数组。 为了使我工作的程序部分仍然有效,我认为我需要使用整数数组。 如果你很好奇,剩下的代码用于确定数组中的数字是否都是不同的,以便确定数字的数字是否都是不同的最终结果。 它看起来像这样:

int repeats=0;
int[] digitArray;
digitArray = new int[10];
for (int i = 0; i < digitArray.length; i++) 
    for (int j = 0; j < digitArray.length; j++)
        if ((i != j) && (digitArray[i]==digitArray[j])) unique = unique+1;
System.out.println(unique==0);

方法number.toString()。length()将返回数字位数。 这与所需数组的长度相同。 然后你像以前一样使用你的代码,而不是打印你将数字添加到数组。

int number = 1234567890;
int len = Integer.toString(number).length();
int[] iarray = new int[len];
for (int index = 0; index < len; index++) {
    iarray[index] = number % 10;
    number /= 10;
}

我宁愿建议您使用ArrayList ,因为要使用数组,您必须提前分配大小,您需要知道您的数字中的数字位数,这是您不知道的。

因此,要么使用数组,要对数字进行两次迭代 - 一次用于查找大小,另一次用于实际工作。 否则,继续使用ArrayList

将元素添加到ArrayList非常简单。 您只需要调用 - 使用适当的参数List#add(E)方法。

所以,这是您的解决方案的扩展: -

// Declare a List<Integer>, since it will store integers only.
List<Integer> digits = new ArrayList<Integer>():

int number = 1234567890;
while (number > 0) {
    int digit = number % 10;  // Store digit in a variable
    number = number/10;

    // Add digit to the list
    digits.add(digit);
}

或者,如果您希望List只有唯一的数字,那么您应该使用HashSet ,它会自动删除重复项。

使用Java 8:

Integer.toString(n)的.chars()。图(A-> A-'0' )。指定者()

char [] arr = scan.next().toCharArray();

这段代码将从scan.next()读取一个数字,然后它将它作为char数组的输入,将其索引处的数字作为单个数字逐个数字。

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM