Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何将字符串插入字符串数组?_Java_Arrays_Exception_Java.util.scanner - Fatal编程技术网

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

在java中如何将字符串插入字符串数组?,java,arrays,exception,java.util.scanner,Java,Arrays,Exception,Java.util.scanner,我有以下获取用户输入的代码: 456589 maths 7.8 english 8.6 end 654564 literature 7.5 physics 5.5 chemistry 9.5 end 并将句子开头的代码存储在一个名为grades的数组中,将代码存储在另一个名为person的数组中。我需要使用这两个数组,以便稍后显示每个人在每节课中的平均成绩 我的代码如下 import java.util.Scanner; public class Student {

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

456589 maths 7.8 english 8.6 end
654564 literature 7.5 physics 5.5 chemistry 9.5 end 
并将句子开头的代码存储在一个名为grades的数组中,将代码存储在另一个名为person的数组中。我需要使用这两个数组,以便稍后显示每个人在每节课中的平均成绩

我的代码如下


    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>
grades=Float.parseFloat(str);
person=str`-->`无法将字符串转换为字符串[]`
似乎禁止将字符串转换为字符串数组。我能做些什么来避免这种情况


谢谢

再次查看代码

grade=Float.parseFloat(str)和vars声明
浮动梯度;浮动[]等级=新浮动[100]
看不到任何
等级



这不能确定编译

您定义了
grad
并使用了
grade

最初定义时使用变量名
grad

float grad;
但是你在这里使用了
等级

grade = Float.parseFloat(str);

另外,尝试使用
ArrayList
而不是
String
array

好吧,错误消息不言而喻,您正在尝试将
String
分配到
String[]
中,因为它是一个数组,您想调用类似
person[0]=str的东西,与grade相同,您想调用
grade[0]=Float.parseFloat(str)

... 但是ofc您可能想要存储插入数组中的人数,因此您创建一个
intinserted=0
,然后调用
grade[inserted]=Float.parseFloat(str)
,然后还调用
inserted++
(或者简单地调用
grade[inserted++]=Float.parseFloat(str)
。我假设您需要一个整数表示个人,一个整数表示等级

尝试使用ArrayList,它比ArrayList更容易理解。您可以在此处查看有关它们的更多信息:

如果你想使用ArrayList,你必须把它包含在你的文件中

import java.util.ArrayList;

你能解释更多关于错误的信息吗?当然可以。每当我运行它时,我都无法在数组级别和人员中获得所需的结果。此外,当我尝试显示以下输出-->(456589的平均结果为)我还收到一条错误消息,
person
是一个数组,
str
是一个字符串-完全不同的类型。你不能将一个字符分配给另一个字符。你应该研究一下如何设置数组的元素。谢谢你,我已经解决了这个问题,但我仍然会遇到同样的错误,我无法将浮点转换为浮点[],将字符串转换为字符串[]。有什么想法吗?谢谢!是的。在你的情况下,你有一个预定义的
分割返回
[int,string,float,string]
。只需逐个直接赋值。例如:
grad=float.parseFloat(wordsplit[2])
。无需循环(可以使用,但尽可能简单)谢谢,但我故意使用了分数,因为我希望每个学生的分数都在你定义的
grade
的分数表中