【问题标题】:Filling and sorting parallel arrays from single user input从单个用户输入填充和排序并行数组
【发布时间】:2017-09-21 19:06:32
【问题描述】:

我必须接受一个字符串和一个 int 十次的单个用户输入,在空间将它们分成两个并行数组。然后我必须对它们进行排序,找到平均值等。我在并行数组上找到的所有内容都有两个不同的字符串和 int 输入。如何将单个输入分成两个数组?

public static void main(String args[]){

    //double[] gradeArray = new double[10];

//String[] nameArray = new String[10];


    String name = " "; //name substring
    String num = " "; //int substring
    String s = " "; //input String
    int grade = Integer.parseInt(num); //parsing the numerical string to an int

    int x = s.indexOf(' '); //index of " " space

    name = s.substring(0, x);
    num =s.substring(x + 1);

    Scanner input = new Scanner(System.in);
    int[] gradeArray = new int[10];

    String[] nameArray = new String[10];
    //looping to gather 10 user inputs
    for(int k = 0; k < 10; k++){
        System.out.println("Input Student name and grade: ");
        s = input.nextLine();

        //not sure how to sepearate String s into String name and String num
    }


    System.out.println("Highest Grade: " + Grades.highestGrade(gradeArray));
    System.out.println("Lowest Grade: " + Grades.lowestGrade(gradeArray));
    System.out.println("Class Average: " + Grades.classAverage(gradeArray));

    for(int i = 0; i < nameArray.length; i++){
        System.out.print(nameArray[i] + ", ");
        System.out.print(gradeArray[i]);
        System.out.println();

    //  System.out.print(sort());



    }

【问题讨论】:

  • 姓名和年级之间会有空格吗?如John 90Michael 78 等...?
  • 是的,完全正确。 int x 是字符串中空格的索引
  • 查看我的回答了解更多详情。

标签: java arrays sorting parallel-processing substring


【解决方案1】:

如何将单个输入分成两个数组?

首先,我们将使用已声明的数组double 来存储成绩。

double[] gradeArray = new double[10];

其次,我们将使用已经声明的String数组来存储名称。

String[] nameArray = new String[10];

现在,继续for 循环,我们可以使用String#split() 方法将namegrade 分隔在分隔符" " 上,因为name 之间会有空格和grade,正如你所提到的。

for(int k = 0; k < 10; k++){
      System.out.println("Input Student name and grade: ");
      s = input.nextLine();
      String[] tempArray = s.split(" ");
      nameArray[k] = tempArray[0]; // store name to nameArray
      gradeArray[k] = Double.parseDouble(tempArray[1]);  // store grade to gradeArray
}

【讨论】:

  • 如何在 for 循环中将其从 String 解析为 int?
  • @user3403708 很高兴它有帮助^^。
猜你喜欢
  • 1970-01-01
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
相关资源
最近更新 更多