Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.io.PrintWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.Scanner;
- public class Register {
- private ArrayList<Person> reg = new ArrayList<Person>(); // registret skall lagras i en ArrayList
- //... Konstruktor och alla metoderna för registerhanteringen
- /** Läser registret från filen med namn fileName. */
- private StringBuilder s = new StringBuilder();
- public Register() {
- }
- public void readFromFile(String fileName) {
- //... Se ledning för filhanteringen sist i uppgiften
- Scanner scan = null;
- try {
- scan = new Scanner(new File(fileName));
- } catch (FileNotFoundException e) {
- System.err.println("Filen kunde inte öppnas");
- System.exit(1);
- }
- String name, date;
- while(scan.hasNext()) {
- String line = scan.nextLine();
- name = line.split(":")[0];
- date = line.split(":")[1];
- reg.add(new Person(name, date));
- System.out.println(reg);
- }
- }
- /** Sparar registret på fil med namnet fileName. */
- public void writeToFile(String fileName) {
- //... Se ledning för filhanteringen sist i uppgiften
- PrintWriter out = null;
- try {
- out = new PrintWriter(new File(fileName));
- } catch (FileNotFoundException e) {
- System.err.println("Filen kunde inte öppnas");
- System.exit(1);
- }
- for(int i = 0; i < reg.size() ; i++) {
- out.println(reg.get(i).getName() + ":" + reg.get(i).getDate());
- }
- out.close(); // stänger filen
- }
- public void addPerson(String name,String date) {
- reg.add(new Person(name, date));
- Collections.sort(reg, new NameSorter()); //sortera
- }
- //ska kunna söka med delar av namn också. Visa alla som passar, med namn - datum (3)
- public String searchFromName(String name) {
- s.setLength(0);
- for(int i = 0; i < reg.size() ; i++) { //FUNKAR INTE HELT, SKA RÄCKA MED ATT DET LIKNAR
- if(reg.get(i).getName().toLowerCase().indexOf(name.toLowerCase()) >=0 ) {
- s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
- }
- }
- return(s.toString());
- }
- //sök fram namn från ett visst datum (4)
- public String searchFromDate(String date) { //SKA RÄCKA MED DELAR AV DET
- s.setLength(0);
- for(int i = 0; i < reg.size() ; i++) {
- if(reg.get(i).getDate().equals(date)) {
- s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
- }
- }
- return(s.toString());
- }
- //presentera alla sorterade efter namn (5)
- public String showByName() {
- s.setLength(0);
- for(int i = 0; i < reg.size() ; i++) {
- s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
- }
- return(s.toString());
- }
- //presentera alla sorterade efter datum (6)
- public String showByDate() {
- s.setLength(0);
- Collections.sort(reg, new DateSorter());
- for(int i = 0; i < reg.size() ; i++) {
- s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
- }Collections.sort(reg, new NameSorter()); //sätter tillbaka till sort name
- return(s.toString());
- }
- public void removePerson(String name) {
- for(int i = 0; i < reg.size() ; i++) {
- if(reg.get(i).getName().equals(name)) {
- reg.remove(i);
- }
- }
- }
- //sortera efter namn
- public class NameSorter implements Comparator<Person>{
- public int compare(Person one, Person another){
- return one.getName().compareTo(another.getName());
- }
- }
- public class DateSorter implements Comparator<Person>{
- public int compare(Person one, Person another){
- return one.getDate().compareTo(another.getDate());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement