gpt4 book ai didi

Java : How to create an array from object then store String and double in that array

转载 作者:行者123 更新时间:2023-11-29 07:44:24 25 4
gpt4 key购买 nike

我想从对象创建一个数组,然后用 2 种不同类型的日期存储在该数组中我仍在学习 Java,这是我的任务,我搜索了很多次,但一无所获,所以我需要你的帮助:D基类:

package com.matcho.task;

public class Subject {
String name;
Double grade;

public Subject(String myname, double myGrade) {
name = myname;
grade = myGrade;
}

public void printermethod() {
System.out.println("Your Subject is " + name + " and ur grade is "
+ grade);
}
}

这是主类:

package com.matcho.task;

import java.util.Scanner;

public class subjectUseing {

public static void main(String[] args) {
String studentName = "";
double studentGrade = 0;
Subject object1 = new Subject(studentName, studentGrade);
Scanner input = new Scanner(System.in);
System.out.print("Please, Enter the Size of the Array : ");
int arraySize = input.nextInt();
Subject[] gradeArray = new Subject[arraySize];
for (int i = 0; i < gradeArray.length; i += 2) {
if ((i + 1) % 2 == 0) {
System.out.println("Please, Enter Subject Number Grade");
studentGrade = input.nextDouble();
studentGrade = object1.grade;
gradeArray[i] = object1.grade;
//Error said (cannot convert from Double to Subject)
//object1.grade = (Double)gradeArray[i];
//gradeArray[i] = object1.grade;
continue;
} else {
System.out.println("Please, Enter Subject Number Name");
studentName = input.next();
studentName = object1.name;
//Error said (cannot convert from String to Subject)
gradeArray[i] = new Subject(object1.name, object1.grade);
// gradeArray[i] = object1.name;
// gradeArray[i] = new String(object1.name); // Failed T_T
}

}// For End
for (int i = 0; i < gradeArray.length; i += 2) {
System.out.println("Your Grade in each Subject is : "
+ gradeArray[i] + " " + gradeArray[i + 1]);
}// For End
}
}

我尝试了很多方法并搜索了很多次但什么也没找到所以我需要帮助因为这个错误[无法从 Double 转换为 Subject] 让我大吃一惊 :D

最佳答案

您基本上需要简化您的循环:在循环的每次迭代中,询问主题名称和成绩,然后创建一个对象来存储它们:

for (int i = 0; i < gradeArray.length; i++) {
System.out.println("Please enter the subject name");
String name = input.next();
System.out.println("Please enter the subject grade");
double grade = input.nextDouble();
gradeArray[i] = new Subject(name, grade);
}

请注意循环内变量的声明 - 您不需要在循环外使用它们,因此不要在那里声明它们。

然后为了显示,您只需使用:

for (Subject grade : gradeArray) {
System.out.println(grade);
}

同样,无需跳过数组中的所有其他项目 - 数组中的每个元素都是对 Subject 对象的引用,该对象包含名称和成绩。

(或将getNamegetGrade 方法添加到Subject 以便您可以自定义输出。)

请注意,您可能会发现 Scanner 使用起来有点麻烦 - 例如,nextDouble() 不会消耗换行符,这可能意味着您读取下一个名称时得到一个空字符串。您可能想考虑一次只读取一行并使用 Double.parseDouble 来解析字符串。 (或使用 NumberFormat。)

关于Java : How to create an array from object then store String and double in that array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27186498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com