搜索ArrayList以更改对象的值

时间:2017-09-26 19:06:04

标签: java csv arraylist

我已经ArrayList players我想要搜索以更改已支付的金额。我希望能够输入ID,然后才能更改为player支付的金额。我也将它写入CSV file,但我不确定如何使用新值更新该文件。我不确定如何去做这件事。

我想要做的只是根据注册ArrayList上的player输入更新特定玩家ID中的值,然后我想更新该值文件。

以下是我制作的3个课程:SquashPlayer

package squashapplication;

import java.util.Scanner;

/**
*
* @author Evan
*/
public class SquashPlayer {

private static int maxRegistrationId;
private int id;
private String name;
private String parentName;
private String phoneNumber;
private String email;
private int amountPaid;


public SquashPlayer() {

}


public SquashPlayer(boolean getFromUser){


    System.out.println("Enter Full Name:");
    this.name = FileUtility.getInput().nextLine();

    System.out.println("Enter Parents name:");
    this.parentName = FileUtility.getInput().nextLine();

    System.out.println("Enter phone number:");
    this.phoneNumber = FileUtility.getInput().nextLine();

    System.out.println("Enter e-mail:");
    this.email = FileUtility.getInput().nextLine();

    System.out.println("Enter amount paid:");
    this.amountPaid = FileUtility.getInput().nextInt();

    FileUtility.getInput().nextLine();

    this.id = ++ maxRegistrationId;

}
public SquashPlayer(int id, String name, int amountPaid , String phoneNumber, String parentName  , String email  ) {
    this.id = id;
    this.amountPaid = amountPaid;
    this.name = name;
    this.parentName = parentName;
    this.email = email;
    this.phoneNumber = phoneNumber;
}
public SquashPlayer(String[] parts) {
    this(Integer.parseInt(parts[0]), parts[1], Integer.parseInt(parts[2]), parts[3],parts[4], parts[5]);

    if (Integer.parseInt(parts[0]) > maxRegistrationId) {
        maxRegistrationId = Integer.parseInt(parts[0]);
    }
}
public SquashPlayer(String csvValues) {
    this(csvValues.split(","));
}

public String getCSV() {
    return  id + "," + name + "," + amountPaid + "," + phoneNumber + "," + email  + "," + parentName;
}
public String getCSV(boolean withLineFeed){
    if(withLineFeed){
        return getCSV()+System.lineSeparator();
    }else{
        return getCSV();
    }
}


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getParentName() {
    return parentName;
}

public void setParentName(String parentName) {
    this.parentName = parentName;
}

public String getPhoneNumber() {
    return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public int getAmountPaid() {
    return amountPaid;
}

public void setAmountPaid(int amountPaid) {
    this.amountPaid = amountPaid;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}



@Override
public String toString() {
    return "ID=" +id+ ", Name=" + name + ", email=" + email + ", Phone Number=" + phoneNumber + ", Amount Paid=" + amountPaid + ", Parent's Name: "+parentName;
}

}

这是我的主要课程:

package squashapplication;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;

public class SquashMain {

public static String MENU = "Options:\nA) Add player\nS) Show players\n G) Update Amount Paid\nX) Exit";
public static String FILE_NAME = "c:\\cis2232\\players.csv";

public static void main(String[] args) throws IOException {

    Files.createDirectories(Paths.get("/cis2232"));

    ArrayList<SquashPlayer> theList = new ArrayList();
    loadPlayers(theList);
    String choice = "";
    do{
        System.out.println(MENU);
        choice = FileUtility.getInput().nextLine().toUpperCase();

        switch(choice){
            case "A":
                SquashPlayer player = new SquashPlayer(true);
                theList.add(player);


                BufferedWriter bw = null;
                FileWriter fw = null;

                try {
                    fw = new FileWriter(FILE_NAME, true);
                    bw = new BufferedWriter(fw);
                    bw.write(player.getCSV(true));
                    System.out.println("Done");
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        if (bw != null) {
                            bw.close();
                        }

                        if (fw != null) {
                            fw.close();
                        }

                    } catch (IOException ex) {

                        ex.printStackTrace();

                    }

                }

                break;
            case "S":
                System.out.println("Here are the players");
                for (SquashPlayer SquashPlayer : theList) {
                    System.out.println(SquashPlayer);
                }
                break;
            case "G":

            case "X":
                System.out.println("Goodbye");
                break;
            default:
                System.out.println("Invalid option");
                break;    
        }


    }while (!choice.equalsIgnoreCase("x"));

}
public static void loadPlayers(ArrayList squash){
    System.out.println("Loading players from the list!");
    int counter = 0;

    try{
        ArrayList<String> tester = (ArrayList<String>) Files.readAllLines(Paths.get(FILE_NAME));
        for(String current:tester){
            System.out.println("Loading: "+current);
            SquashPlayer temp = new SquashPlayer(current);
            squash.add(temp);
            counter++;

        }
    }catch(IOException ex){
        System.out.println("Error loading players from file.");
        System.out.println(ex.getMessage());
    }
    System.out.println("Loaded players from file: "+ counter + " players");
}

}

以下是我将扫描仪存放在FileUtility

中的位置
package squashapplication;

import java.util.Scanner;

public class FileUtility {

private static Scanner input = new Scanner(System.in);

public static Scanner getInput() {
    return input;
}

}

0 个答案:

没有答案