如何在Java中将字符串插入字符串数组?

问题描述 投票:-1回答:4

我有以下获得用户输入的代码:

456589 maths 7.8 english 8.6 end
654564 literature 7.5 physics 5.5 chemistry 9.5 end 

并将代码开头的代码存储在一个称为成绩的数组中,并将代码存储在另一个称为人的数组中。我需要使用这两个数组,以便稍后显示每个课程中每个人的平均成绩。

我的代码如下


    import java.util.Scanner;
    public class Student
    {
        public static void main(String[] args)
        {
            Scanner s = new Scanner(System.in);
            String currentAnswer = "";
            String userWords = "";
            String am = "";
            String subj = "";
            float grad;
            float[] grades = new float[100];
            String[] person = new String[100];

            System.out.println("Enter your a.m. as well as the subjects which you sat in finals");

                while(!currentAnswer.equals("end"))
                {
                    currentAnswer = s.nextLine(); // reads the number or word
                    userWords += currentAnswer + " ";
                    if(currentAnswer.equals("000000"))
                    {
                        System.out.println("The sequence of numbers you entered is: "+userWords);
                        System.out.println("Exiting...");
                        System.exit(0);
                    }

                    String[] wordsplit = currentAnswer.split(" ");
                    for (String str : wordsplit)
                    {
                        try
                        {
                            grade = Float.parseFloat(str);
                        }
                        catch(NumberFormatException ex)
                        {
                            person = str;
                        }

                    }

                }                   
                    System.out.println("Enter your a.m. as well as the subjects which you sat in finals");  
        }
    }

错误消息使行变得模糊

grades = Float.parseFloat(str);
person = str` --> `String cannot be converted to String[]`<br>

似乎禁止将String转换为String数组。为了避免这种情况该怎么办?

谢谢!

java arrays exception java.util.scanner
4个回答
0
投票

再次查看代码grade = Float.parseFloat(str);和vars声明float grad; float[] grades = new float[100]看不到任何grade!这不能确定编译!


0
投票

[好吧,错误消息说明了一切,您正在尝试将String分配给String[],因为它是一个数组,所以您想调用类似person[0] = str的东西,与等级相同的东西,您想调用[ C0]...但是您可能要存储插入数组的人数,因此创建grade[0] = Float.parseFloat(str),然后调用int inserted = 0,然后再调用grade[inserted] = Float.parseFloat(str)(或简单地调用inserted++。)您将需要一个整数用于人员,一个用于成绩]


0
投票

尝试使用ArrayLists,宽容比数组多,而且简单易学。您可以在此处查看有关它们的更多信息:grade[inserted++] = Float.parseFloat(str)

如果要使用ArrayList,则必须在请求文件时包括它。

https://www.w3schools.com/java/java_arraylist.asp

0
投票

您定义了import java.util.ArrayList; 并使用了grad

最初在定义时使用了变量名grade

grad

但是您在这里使用了float grad;

grade

也尝试使用grade = Float.parseFloat(str); 而不是ArrayList数组

© www.soinside.com 2019 - 2024. All rights reserved.