我试图在不使用字符串操作的情况下将整数转换为字符数组。
我的尝试是:
int number = 12;
char[] test = Character.toChars(number);
for (char c : test)
System.out.println(c);
没有输出,应该给我:
'1'
'2'
我怎样才能解决这个问题?谢谢!
我试图在不使用字符串操作的情况下将整数转换为字符数组。
我的尝试是:
int number = 12;
char[] test = Character.toChars(number);
for (char c : test)
System.out.println(c);
没有输出,应该给我:
'1'
'2'
我怎样才能解决这个问题?谢谢!
尝试这样的事情:
int number = 12345;
char[] arr = new char[(int) (Math.log10(number) + 1)];
for (int i = arr.length - 1; i >= 0; i--) {
arr[i] = (char) ('0' + (number % 10));
number /= 10;
}
System.out.println(Arrays.toString(arr));
[1、2、3、4、5]
请注意,返回 中的位数。此外,如果您想保留原始号码,请创建一个副本并在-loop 中使用它。floor(log10(n) + 1)
n
for
另请注意,如果您还计划处理非正整数,则可能必须调整上面的代码。但是,总体思路应该保持不变。
char[] test = Integer.toString(number).toCharArray();
提取数字的每个数字,将其转换为字符(通过添加“0”)并将它们存储到 char 数组中。让我们知道您的尝试。
+1 for @arshajii's code log10(n) + 1
is something new for me as well. If you intend to use Vectors
instead of arrays
you can also follow this procedure(But the Vector has elements in reverse order) in which you never need to calculate the size of number itself
public static Vector<Character> convert(int i) {
Vector<Character> temp = new Vector<Character>();
while (i > 0) {
Character tempi = (char) ('0' + i % 10);
i = i / 10;
temp.add(tempi);
}
return temp;
}