27

将整数转换为字符数组的最佳方法是什么?

输入:1234

输出:{1,2,3,4}

牢记 Java 语言的广度,最好和最有效的方法是什么?

4

7 回答 7

54
int i = 1234;
char[] chars = ("" + i).toCharArray();
于 2012-08-30T08:28:38.773 回答
47

您可以尝试以下方法:

String.valueOf(1234).toCharArray();
于 2012-08-30T08:29:13.953 回答
15

试试这个...

int value = 1234;
char [] chars = String.valueOf(value).toCharArray();
于 2012-08-30T08:30:46.470 回答
8

您可以将该整数转换为字符串,然后将该字符串转换为 char arary:-

int i = 1234;
String s = Integer.toString(i);
Char ch[] = s.toCharArray();

/*ch[0]=1,ch[1]=2,ch[2]=3,ch[3]=4*/
于 2017-02-04T08:59:46.430 回答
2

这会将 int 转换为 2 char 数组。如果您试图获得最少数量的字符,请尝试此操作。

//convert int to char array

int valIn = 111112222;

ByteBuffer bb1 = ByteBuffer.allocate(4);
bb1.putInt(valIn); 

char [] charArr = new char[4];
charArr[0] = bb1.getChar(0);
charArr[1] = bb1.getChar(2);

//convert char array to int

ByteBuffer bb2 = ByteBuffer.allocate(8);
bb2.putChar(0,charArr[0]);
bb2.putChar(2,charArr[1]);

long valOut = bb2.getInt(0);
于 2018-10-01T18:10:50.787 回答
0

我在谷歌面试中被问到这个问题。如果在面试中询问使用模块和部门。这是答案

List<Integer> digits = new ArrayList<>();
//main logic using devide and module
for (; num != 0; num /= 10)
    digits.add(num % 10);

//declare an array
int[] arr = new int[digits.size()];
//fill in the array
for(int i = 0; i < digits.size(); i++) {
    arr[i] = digits.get(i);
}
//reverse it.
ArrayUtils.reverse(arr);
于 2016-11-18T15:57:12.337 回答
-2

假设您有一个整数数组和另一种将这些整数转换为字母的方法,例如将数字等级更改为字母等级的程序,您会这样做...

public char[] allGradesToLetters()
   {
      char[] array = new char[grades.length];

      for(int i = 0; i < grades.length; i++)
      {
         array[i] = getLetter(grades[i]);
      }

      return array;
   }
于 2016-12-07T18:40:46.350 回答