在Java中将用户输入词转换为unicode数组

时间:2014-11-27 20:36:01

标签: java arrays char int type-conversion

所以我在弄清楚如何将用户输入的单词转换为int数组时遇到问题,这个单词的每个字母都包含在自己的unicode值中(所以类似于" A"将在阵列中变成65)。我想到的一种方法是,首先我将用户输入的单词拆分为单独的字符(因此字符串"和"首先将被拆分为字符" A"," n"," d",然后当它们被放入int数组时将变为第65,110,100号。问题是我迷路了。我不确定如何将单词拆分为单独的字符,然后将这些字符转换为进入int数组。任何帮助是极大的赞赏!同样正如我所说,我需要能够找到所有值的最大值,最小值和平均值。

3 个答案:

答案 0 :(得分:1)

试试这个:

public static void stringToArray (){                                  
        Scanner in = new Scanner(System.in);
        System.out.print("Input String: ");             
        String input = in.nextLine();
        Integer[] lista = new Integer[input.length()];
        for(int i=0;i<input.length();i++) {
            lista[i] = input.codePointAt(i);  
            System.out.print(lista[i] + " ");
        }        
        System.out.print("\nArray descending order: ");
        Arrays.sort(lista, Collections.reverseOrder());
        for(int i=0;i<input.length();i++) 
            System.out.print(lista[i] + " ");                                   
        if (lista.length>0) {  
            int min=lista[0];
            int max=lista[0];
            int sum=0;
            int avg;
            for(int i=0;i<lista.length;i++){
                if (lista[i]> max) max=lista[i];
                if (lista[i]< min) min=lista[i];
                sum += lista[i];                
            }
            avg=sum/lista.length;                
            System.out.println("\nThe maximun value is: "+max);
            System.out.println("The minimun value is: "+min);
            System.out.println("The average value is: "+avg);                            
        }
}

答案 1 :(得分:0)

这会将每个字符添加到整数数组中:

public static int[] codepoints(String str) {
    int[] arr = new int[str.length()];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = str.charAt(i);
    }
    return arr;
}

DEMO

答案 2 :(得分:0)

一种可能的解决方案是迭代String中的字符并将其复制到新的int数组中,例如

public static int[] getPoints(String str) {
    if (str == null) {
        return null;
    }
    char[] chars = str.toCharArray();
    int[] out = new int[chars.length];
    for (int i = 0; i < chars.length; i++) {
        out[i] = chars[i];
    }
    return out;
}

然后你可以测试它,

public static void main(String[] args) {
    System.out.println(Arrays.toString(getPoints("And")));
}

输出(按要求)

[65, 110, 100]