Java 将大的数字分成不同的数字并存储它们
例如,如果我有一个很大的数字,比如18750409。我想把这个数字分成1,8,7,5,0,4,0,9个独立的数字。但我不想马上打印出来,我想把它们存储在某个地方,比如a代表1,B代表8。(可能在数组中?)因此我可以在打印结果之前,在程序中稍后使用这些数字做更多的事情 感谢您的帮助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; /
封装测试;
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();
}