0

**モデレーターはこの質問を削除またはロックしてください

申し訳ありませんが、私のコードのすべてを投稿してください

import java.util.*;
import java.lang.*;
import java.io.*;

public class MinorAssignment_PartB {

    public static void main(String[] args) throws Exception {
        List<StudentMarks> marks = new ArrayList<StudentMarks>();
        String File = "studentinfo.txt";
        Scanner scan = new Scanner(new File(File));
        scan.useDelimiter(",");//makes the delimiter a comma

        while(scan.hasNext()) {
            marks.add(new StudentMarks(scan.next(), scan.next(),
                            scan.nextDouble(), scan.nextDouble(),
                            scan.nextDouble(), scan.nextDouble()));

            System.out.printf("%-23s %-15s %-15s %-15s " +
                    "%-15s %-15s %-15s %-15s %n", "STUDENT  NAME",
                        "STUDENT FAN", "PART A", "PART B", "PARTt C",
                                            "PART D", "MARK", "GRADE");

            for (int i = 0; i < marks.size(); i++) {
                System.out.println(marks.get(i));
            }
        }

そしてクラス

import java.text.*;

public class StudentMarks {

    //contains a student class and an array of doubles. 
    private Student student = new Student();
    private double marks[] = new double[5];
    DecimalFormat fmt = new DecimalFormat("0.##");

    public StudentMarks(String name, String fan,
            double partA, double partB, double partC, double partD) {
        Student stud = new Student(name, fan);
        this.student = stud;
        this.marks[0] = partA;
        this.marks[1] = partB;
        this.marks[2] = partC;
        this.marks[3] = partD;
        this.marks[4] = ((partA*0.1) + (partB*0.4) + (partC*0.2) + (partD*0.3));
    }

    @Override
    public String toString() {
        return "" + student + "\t" + marks[0] + "\t\t" + marks[1] + "\t\t" + marks[2] + "\t\t" + marks[3] + "\t\t" + fmt.format(marks[4])+"%";
    }
}

だから私はarraylistの行で特定の要素を取得する必要があります

10 行のテキストがあり、各行には 2 つの文字列と 2 つの double が含まれています。Adam Adamson adam0001 85.4 79.8 82.4 86.1 さらに 9 行、同じ形式で名前と数字が異なります

最初の行を出力するmarks.get(0)がありますが、3番目の要素85.4だけが必要です

試してくれたみんなに感謝しますが、私はそれを理解しました。

4

3 に答える 3

1

まず、次の getter を追加して in にアクセスする必要がありmarksますStudentMarks

public double[] getMarks() {
    return this.marks;
}

85.4次に、次のコードスニペットを使用して値を取得できますpartA

StudentMarks info = marks.get(0);
double[] marksValue = info.getMarks();
double partA = marksValue[0];

partA必要に応じて使用できる値85.4を持つ必須変数です。

于 2013-09-29T13:02:28.487 に答える
0

StudentMarksクラスで getter メソッドを定義します。

public double[] getMarks() {
    return marks;
}

そしてSystem.out.println(marks.get(i).getMarks()[0]);、あなたmarks[0]が必要な値である場合に使用します。

于 2013-09-29T13:25:09.107 に答える
0

変換してみる

Person person =(person)marks.get(0);
System.out.println(person.StudentMarks[0]);

次に、必要な属性を取得します

于 2013-09-29T13:08:03.240 に答える