Advertisement
Guest User

register

a guest
Dec 11th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. import java.io.PrintWriter;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.util.Scanner;
  8.  
  9. public class Register {
  10.  
  11. private ArrayList<Person> reg = new ArrayList<Person>(); // registret skall lagras i en ArrayList
  12. //... Konstruktor och alla metoderna för registerhanteringen
  13. /** Läser registret från filen med namn fileName. */
  14. private StringBuilder s = new StringBuilder();
  15.  
  16. public Register() {
  17.  
  18. }
  19.  
  20. public void readFromFile(String fileName) {
  21. //... Se ledning för filhanteringen sist i uppgiften
  22. Scanner scan = null;
  23. try {
  24. scan = new Scanner(new File(fileName));
  25. } catch (FileNotFoundException e) {
  26.  
  27. System.err.println("Filen kunde inte öppnas");
  28. System.exit(1);
  29. }
  30. String name, date;
  31. while(scan.hasNext()) {
  32. String line = scan.nextLine();
  33. name = line.split(":")[0];
  34. date = line.split(":")[1];
  35. reg.add(new Person(name, date));
  36. System.out.println(reg);
  37.  
  38. }
  39. }
  40. /** Sparar registret på fil med namnet fileName. */
  41. public void writeToFile(String fileName) {
  42. //... Se ledning för filhanteringen sist i uppgiften
  43. PrintWriter out = null;
  44. try {
  45. out = new PrintWriter(new File(fileName));
  46. } catch (FileNotFoundException e) {
  47. System.err.println("Filen kunde inte öppnas");
  48. System.exit(1);
  49. }
  50. for(int i = 0; i < reg.size() ; i++) {
  51. out.println(reg.get(i).getName() + ":" + reg.get(i).getDate());
  52. }
  53. out.close(); // stänger filen
  54.  
  55. }
  56. public void addPerson(String name,String date) {
  57. reg.add(new Person(name, date));
  58. Collections.sort(reg, new NameSorter()); //sortera
  59.  
  60. }
  61. //ska kunna söka med delar av namn också. Visa alla som passar, med namn - datum (3)
  62. public String searchFromName(String name) {
  63. s.setLength(0);
  64. for(int i = 0; i < reg.size() ; i++) { //FUNKAR INTE HELT, SKA RÄCKA MED ATT DET LIKNAR
  65. if(reg.get(i).getName().toLowerCase().indexOf(name.toLowerCase()) >=0 ) {
  66. s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
  67. }
  68. }
  69. return(s.toString());
  70. }
  71. //sök fram namn från ett visst datum (4)
  72. public String searchFromDate(String date) { //SKA RÄCKA MED DELAR AV DET
  73. s.setLength(0);
  74. for(int i = 0; i < reg.size() ; i++) {
  75. if(reg.get(i).getDate().equals(date)) {
  76. s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
  77. }
  78. }
  79. return(s.toString());
  80. }
  81. //presentera alla sorterade efter namn (5)
  82. public String showByName() {
  83. s.setLength(0);
  84. for(int i = 0; i < reg.size() ; i++) {
  85. s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
  86. }
  87. return(s.toString());
  88. }
  89.  
  90. //presentera alla sorterade efter datum (6)
  91. public String showByDate() {
  92. s.setLength(0);
  93. Collections.sort(reg, new DateSorter());
  94. for(int i = 0; i < reg.size() ; i++) {
  95. s.append(reg.get(i).getName() + " - " + reg.get(i).getDate() + "\n");
  96. }Collections.sort(reg, new NameSorter()); //sätter tillbaka till sort name
  97. return(s.toString());
  98. }
  99.  
  100. public void removePerson(String name) {
  101. for(int i = 0; i < reg.size() ; i++) {
  102. if(reg.get(i).getName().equals(name)) {
  103. reg.remove(i);
  104. }
  105. }
  106. }
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. //sortera efter namn
  116. public class NameSorter implements Comparator<Person>{
  117.  
  118. public int compare(Person one, Person another){
  119. return one.getName().compareTo(another.getName());
  120. }
  121. }
  122. public class DateSorter implements Comparator<Person>{
  123.  
  124. public int compare(Person one, Person another){
  125. return one.getDate().compareTo(another.getDate());
  126. }
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement