所以我有一个整数z,它保存了邮政编码的值,我需要将邮政编码的每个数字存储在数组的一个单独部分。我怎么能这样做?
private int [] zipDigits = new int [5];
private int digitCheck;
private int zipCode;
public ZipCode(int z)
{
for(int i = 0; i < 5; i++)
zipDigits[i] =
this.zipCode = z;
答案 0 :(得分:2)
这样的事情应该有效:
public int[] intToDigits(int z) {
int n = String.valueOf(z).length();
int[] res = new int[n];
int i = n - 1;
while (i >= 0) {
res[i--] = z % 10;
z = z / 10;
}
return res;
}
这首先得到一个非常明显的长度,你也可以用对数来做到这一点,但我不知道他们的精确度是否会导致问题。然后从数组的后面开始,用mod取最后一位数字,然后用数字除以10来删除这个数字。
编辑: 我现在看到你已经编辑了你的帖子,说明长度是5位数,那么我们不需要自己计算长度,我们可以使用以下算法:
public int[] intToDigits(int z) {
int[] res = new int[5];
int i = 4;
while (i >= 0) {
res[i--] = z % 10;
z = z / 10;
}
return res;
}
答案 1 :(得分:1)
由于你知道了数字的位数,你可以做一个循环,将除法的余数保存为10并将其保存到数组中,然后除以10。
int zipCode = 1000;
int [] myArray = new int[5];
for(int i = 0; i < 5; i++){
if(zipCode > 0){
myArray[i] = zipCode%10;
zipCode /= 10;
}
else
myArray[i] = 0;
}
答案 2 :(得分:1)
所以你问这个;
你有一个
int zip = 90210
你想把它放到像这样的数组中
int [] zipArrary = new int [5];
String changeZip = Integer.toString(zip);
for (int i = 0; i < changeZip.length(); i++){
char c = s.charAt(i);
int place = Character.getNumericValue(c);
zipArray[i] = place;
}
这样的东西?
答案 3 :(得分:0)
char
现在,您的zip包含在NumOffre
。