为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得整数的单独数字?

如何获得整数的单独数字?

牧羊人nacy 2019-06-19 11:16:55
如何获得整数的单独数字?我有像1100,1002,1022这样的数字。我想要一个数字,例如,对于第一个数字1100,我想有1,1,0,0。我怎样才能在Java中得到它呢?
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

转换成String和使用String#toCharArray()String#split().

String number = String.valueOf(someInt);char[] digits1 = number.toCharArray();// or:String[] digits2 = number.split("(?<=.)");

如果您已经在Java 8上了,而您碰巧想在Java 8上做一些聚合操作,那么请考虑使用String#chars()得到一个IntStream从里面出来。

IntStream chars = number.chars();


查看完整回答
反对 回复 2019-06-19
?
万千封印

TA贡献1891条经验 获得超3个赞

这个怎么样?

public static void printDigits(int num) {
    if(num / 10 > 0) {
        printDigits(num / 10);
    }
    System.out.printf("%d ", num % 10);}

或者,我们可以将其收集到整数数组中,而不是打印到控制台,然后打印数组:

public static void main(String[] args) {
    Integer[] digits = getDigits(12345);
    System.out.println(Arrays.toString(digits));}public static Integer[] getDigits(int num) {
    List<Integer> digits = new ArrayList<Integer>();
    collectDigits(num, digits);
    return digits.toArray(new Integer[]{});}private static void collectDigits(int num, List<Integer> digits) {
    if(num / 10 > 0) {
        collectDigits(num / 10, digits);
    }
    digits.add(num % 10);}

如果要保持数字从最小有效(索引[0])到最重要(索引[n])的顺序,则需要以下更新的getDigits():

/**
 * split an integer into its individual digits
 * NOTE: digits order is maintained - i.e. Least significant digit is at index[0]
 * @param num positive integer
 * @return array of digits
 */public static Integer[] getDigits(int num) {
    if (num < 0) { return new Integer[0]; }
    List<Integer> digits = new ArrayList<Integer>();
    collectDigits(num, digits);
    Collections.reverse(digits);
    return digits.toArray(new Integer[]{});}


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 509 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信