Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将大的数字分成不同的数字并存储它们_Java_Arrays_Sorting_Numbers_Digits - Fatal编程技术网

Java 将大的数字分成不同的数字并存储它们

Java 将大的数字分成不同的数字并存储它们,java,arrays,sorting,numbers,digits,Java,Arrays,Sorting,Numbers,Digits,例如,如果我有一个很大的数字,比如18750409。我想把这个数字分成1,8,7,5,0,4,0,9个独立的数字。但我不想马上打印出来,我想把它们存储在某个地方,比如a代表1,B代表8。(可能在数组中?)因此我可以在打印结果之前,在程序中稍后使用这些数字做更多的事情 感谢您的帮助 封装测试; package test; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Scanner; /

例如,如果我有一个很大的数字,比如18750409。我想把这个数字分成1,8,7,5,0,4,0,9个独立的数字。但我不想马上打印出来,我想把它们存储在某个地方,比如a代表1,B代表8。(可能在数组中?)因此我可以在打印结果之前,在程序中稍后使用这些数字做更多的事情

感谢您的帮助

封装测试;
package test;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;

/**
 *
 * @author shalom
 */
public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int num,
        temp,     //it holds the remainder value
        n;        //it will be used for seperating the integer
        int[] array;
        String s = "";    // if you want to store the number in string
        System.out.println("Enter the number"); //Taking value from user for any number
        num = new Scanner(System.in).nextInt();

        n = num;

        while (n>0) {
            temp = n%10; //remainder extracted
            s = temp + s;  //concatenated with s
            n = n / 10;    //to get the next digit to be separated

        }

        array = new int[s.length()];    //finally if you want to store the values in array initiliaze the array with lenght of s

        for (int i = 0; i < s.length(); i++)
            array[i] = Integer.parseInt("" + s.charAt(i)); // values are stored in array
    }
}
导入java.lang.reflect.Array; 导入java.util.ArrayList; 导入java.util.Scanner; /** * *@作者沙洛姆 */ 公开课考试{ /** *@param指定命令行参数 */ 公共静态void main(字符串[]args){ int num, temp,//它保存余数值 n、 //它将用于分隔整数 int[]数组; String s=“”;//如果要将数字存储在字符串中 System.out.println(“输入数字”);//从用户处获取任何数字的值 num=新扫描仪(System.in).nextInt(); n=num; 而(n>0){ temp=n%10;//已提取余数 s=temp+s;//与s连接 n=n/10;//获取下一个要分隔的数字 } array=new int[s.length()];//最后,如果要在数组中存储值,请初始化长度为s的数组 对于(int i=0;i
您可以使用
ArrayList
存储结果。并使用
digitArray.get(i-1)

int n=18750409;
List digitArray=new ArrayList();
而(n>0){
数字阵列。添加(n%10);
n=n/10;
}
//获取单个数字
digit3=digitArray.get(2);
inthjk=326543;
String cvbn=新字符串(String.valueOf(hjk));
系统输出打印项次(cvbn);
char xcv[]=cvbn.toCharArray();
int cv[]=新的int[xcv.length];
对于(int hj=0;hj1)获取数字的长度(数字的长度)(可以通过将数字转换为字符串并通过调用.length()获取长度来完成)

2) 使用for循环循环遍历字符串,并创建一个单独的字符数组,在使用charAt()遍历字符串的每个字符时,将它们存储在该数组中:

char[] charArray;
charArray = new char[numberLength];

for(int i = 0; i < (numberLength - 1); i++) // -> Remember, -1 because arrays start at 0!
{
  charArray[i] = my_string.charAt(i);
}
char[]charArray;
charArray=新字符[numberLength];
对于(int i=0;i<(numberLength-1);i++)/->记住,-1,因为数组从0开始!
{
charArray[i]=my_string.charAt(i);
}
现在您有了一个字符形式的数字数组。要将它们转换回整数,只需循环该数组并将字符转换回数字。 注意:您也可以将数字存储为字符串

如果您使用的是字符,则要转换为int:use getNumericValue()->从技术上讲,这将返回unicode数值,但数字的unicode就是该数字

int[] digitArray;
digitArray = new int[numberLength];

for (int i =0; i< numberLength; i++)
{
 digitArray[i] = charArray[i].getNumericValue();
}
int[]数字阵列;
数字阵列=新的整数[数字长度];
for(int i=0;i
就这样。:)
(如果某些java语法关闭,很抱歉;我已经有一段时间没有使用java了。

是否将它们存储为字符或整数(或其他数字类型)?我的方法是将其划分为单独的字符,然后将这些字符转换为数字类型(而不是强制转换!)如果可能的话,我想将它们存储为int,但我想chars会起作用。我确实看过了你链接@Tom的第一个链接,但从答案中我看到他们直接打印出来。我想存储它们并使用这些单独的数字进行更多操作,然后不要在代码中添加
System.out.println
行……请添加解释而不仅仅是发布整个程序。
int number = ...;
String my_string = "" + number;
int numberLength = my_string.length();
char[] charArray;
charArray = new char[numberLength];

for(int i = 0; i < (numberLength - 1); i++) // -> Remember, -1 because arrays start at 0!
{
  charArray[i] = my_string.charAt(i);
}
int[] digitArray;
digitArray = new int[numberLength];

for (int i =0; i< numberLength; i++)
{
 digitArray[i] = charArray[i].getNumericValue();
}