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