Converteer een geheel getal naar een array van karakters: java

Wat is de beste manier om een geheel getal om te zetten in een tekenreeks?

Invoer: 1234

Uitvoer: {1,2,3,4}

Wat is de beste en meest efficiënte manier om dit te doen, rekening houdend met de uitgestrektheid van de Java-taal?


Antwoord 1, autoriteit 100%

int i = 1234;
char[] chars = ("" + i).toCharArray();

Antwoord 2, autoriteit 86%

Je zou iets kunnen proberen als:

String.valueOf(1234).toCharArray();

Antwoord 3, autoriteit 25%

Probeer dit…

int value = 1234;
char [] chars = String.valueOf(value).toCharArray();

Antwoord 4, autoriteit 12%

Je kunt dat gehele getal converteren naar string en die string vervolgens converteren naar 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*/

Antwoord 5, autoriteit 4%

Hiermee wordt een int geconverteerd naar een array van 2 tekens. Probeer dit als je het minimum aantal tekens probeert te krijgen.

//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);

Antwoord 6

Ik heb deze vraag gesteld in Google-interview. Indien gevraagd in interviews gebruik module en divisie. Hier is het antwoord

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);

Antwoord 7

Zeg dat u een reeks inten en een andere methode hebt die die inten naar letters converteert, zoals voor een programma van het programma dat de cijfers van het aantal wisselt, u zou doen …

public char[] allGradesToLetters()
   {
      char[] array = new char[grades.length];
      for(int i = 0; i < grades.length; i++)
      {
         array[i] = getLetter(grades[i]);
      }
      return array;
   }

Other episodes