如何获得整数的单独数字?我有像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("(?<=.)");
String#chars()
IntStream
IntStream chars = number.chars();
万千封印
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);}
/** * 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[]{});}
添加回答
举报
0/150
提交
取消