如何获得整数的单独数字?我有像1100,1002,1022这样的数字。我想要一个数字,例如,对于第一个数字1100,我想有1,1,0,0。我怎样才能在Java中得到它呢?
3 回答
catspeake
TA贡献1111条经验 获得超0个赞
StringString#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
提交
取消
