java int取出各个数位

比如一个int类型的数字是12345,我现在需要取出各个数位的数字,应该如何实现?取出来的数字也必须是int类型。如:12345;取出来后就是1,2,3,4,5相加后是1... 比如一个int类型的数字是12345,我现在需要取出各个数位的数字,应该如何实现?
取出来的数字也必须是int类型。
如:12345;
取出来后就是1,2,3,4,5
相加后是15;

PS:刚才本来想string取出来进行相加的,结果类型转换后成了ascii码相加。

希望高手有更好的方法也指点一下哈,谢啦^ ^
展开
 我来答
vampire_c
推荐于2017-11-24 · TA获得超过735个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:488万
展开全部
1. 取字符是可以的,取出字符后减去'0'(注意是字符0)就可以得到数值了,比如'1'-'0'=1;
2. 或者用除与取余迭代的方法,比如:
12345 / 10000 = 1; 12345 % 10000 = 2345;
2345 / 1000 = 2; 2345 % 1000 = 345;
这样以此类推。
追问
迭代这个我不会哈,你能具体写下方法吗?谢啦~
追答
zjut_ww的方法更好,我的这个确实需要先知道整数的位数...
百度网友bdea8e89e
2011-04-29 · TA获得超过314个赞
知道答主
回答量:248
采纳率:0%
帮助的人:186万
展开全部
public static void main(String[] args) {
int i = 12345;
int j = 0;
while(i != 0){
j += i %10;
i = i /10;
System.out.println(j);
}
}
LS的方法必须要知道原int 的个数。。。所以我的这个比较通用,当然你可以写成方法,把i 作为参数。。。

public int zhidao (int i){
int j = 0;
while(i != 0){
j += i %10;
i = i /10;
}
return j;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-04-29 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
String可以阿
public class Test {

public static void main(String[] args) {

int num = 12345;

int total = getSum(num);

System.out.println(total);

}

private static int getSum(int num) {

String str = String.valueOf(num);
int sum = 0;
for(int i = 0; i < str.length(); i++){
sum += Integer.parseInt(String.valueOf(str.charAt(i)));
}
return sum;
}
}
---------------
15
追问
也谢谢你的方法,我还是采取1L的答案吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吻玥92肚皮舞
2020-06-18
知道答主
回答量:1
采纳率:0%
帮助的人:611
展开全部
不一定是最优的, 只是个思路:

~~~
import java.util.ArrayList;

public class ExtractElements {

public static void main(String[] args) {
int i = 12345678;
System.out.println(extract(i));
}

private static ArrayList<Integer> extract(int i) {
ArrayList<Integer> list = new ArrayList<>();
String[] arr = String.valueOf(i).split("");
for (String s : arr) {
list.add(Integer.valueOf(s));
}
return list;
}
}

// Output: [1, 2, 3, 4, 5, 6, 7, 8]
~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友95cd8cb
2011-04-29 · TA获得超过109个赞
知道答主
回答量:105
采纳率:0%
帮助的人:89.8万
展开全部
不好意思哈,刚才那个写错了
int i = 12345;
String str = i + "";
int total = 0;
for(int s = 0;s < str.length();s ++)
{
System.out.println(str.charAt(s));
char c = str.charAt(s);
total = total + Integer.parseInt(c + "");
System.out.println("total = " + total);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式