【问题标题】:Convert an integer to an array of characters : java将整数转换为字符数组:java
【发布时间】:2012-08-24 22:35:13
【问题描述】:

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

输入:1234

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

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

【问题讨论】:

  • 我正在寻找一种有效的方法。我可以考虑将每个数字取出 %10,将其转换为 char 并添加到数组中。最后反转数组。有更好的方法吗??

标签: java arrays casting type-conversion


【解决方案1】:

这会将 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);

【讨论】:

    【解决方案2】:

    您可以将该整数转换为字符串,然后将该字符串转换为 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*/
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          试试这个...

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

          【讨论】:

            【解决方案6】:

            你可以试试这样的:

            String.valueOf(1234).toCharArray();
            

            【讨论】:

            • 酷.. 仍然不知道 Java 中的一半功能。感谢您的回答。
            【解决方案7】:
            int i = 1234;
            char[] chars = ("" + i).toCharArray();
            

            【讨论】:

            • 啊哈...我一直在寻找这样的东西。 :)
            • 嘿,您能否解释一下该解决方案的 (""+i) 部分是如何工作的,您只是说空字符串 + int = 该 int 的字符串。
            猜你喜欢
            • 1970-01-01
            • 2013-11-11
            • 1970-01-01
            • 2010-12-28
            • 1970-01-01
            • 2018-10-07
            • 1970-01-01
            相关资源
            最近更新 更多