new Exercises
parent
04857a62e5
commit
06212004e2
|
@ -12,6 +12,6 @@ public class Employee extends Person{
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + ", salary= " + salary;
|
||||
return super.toString() + ", salary=" + salary;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,63 @@
|
|||
package Testat1.Aufgabe2;
|
||||
|
||||
|
||||
import java.io.FileReader;
|
||||
import java.io.LineNumberReader;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
ArrayList<Person> people = new ArrayList<>();
|
||||
|
||||
try (LineNumberReader reader = new LineNumberReader(new FileReader("Exercises/Testat1/Aufgabe2/people"))){
|
||||
String line;
|
||||
boolean isOddLine = true;
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||
while((line = reader.readLine()) != null) {
|
||||
if(isOddLine) {
|
||||
String[] parts = line.split("\\s+");
|
||||
LocalDate date = LocalDate.parse(parts[1], formatter);
|
||||
String name = parts[2];
|
||||
int age = Integer.parseInt(parts[3]);
|
||||
double size = Double.parseDouble(parts[4].replace(',', '.'));
|
||||
if(parts[0].equals("Person")) {
|
||||
people.add(new Person(date, name, age, size));
|
||||
}
|
||||
else if(parts[0].equals("Student")) {
|
||||
String subject = parts[5];
|
||||
people.add(new Student(date, name, age, size, subject));
|
||||
}
|
||||
else if(parts[0].equals("Employee")) {
|
||||
double salary = Double.parseDouble(parts[5]);
|
||||
people.add(new Employee(date, name, age, size, salary));
|
||||
}
|
||||
else if(parts[0].equals("Teacher")) {
|
||||
String field = parts[5];
|
||||
people.add(new Teacher(date, name, age, size, field));
|
||||
}
|
||||
|
||||
}
|
||||
isOddLine = !isOddLine;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
for (Person person : people) {
|
||||
System.out.println(person.toString());
|
||||
}
|
||||
System.out.printf("Durchschnittsalter: %s\n", Main.durchschnittRechner(people));
|
||||
}
|
||||
public static double durchschnittRechner (ArrayList<Person> people) {
|
||||
if(people.isEmpty() || people == null) {
|
||||
return 0.0;
|
||||
}
|
||||
int summe = 0;
|
||||
for (Person person : people) {
|
||||
summe = summe + person.getAge();
|
||||
}
|
||||
return (double) summe/people.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,9 +17,10 @@ public class Person {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Person: dateOfEm=" + dateOfEm + ", name=" + name + ", age=" + age + ", size=" + size;
|
||||
return getClass().getName().split("\\.")[2] + ": dateOfEm=" + dateOfEm + ", name=" + name + ", age=" + age + ", size=" + size;
|
||||
}
|
||||
public int getAge() {
|
||||
|
||||
return age;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,6 @@ public class Teacher extends Person{
|
|||
this.fach = fach;
|
||||
}
|
||||
public String toString() {
|
||||
return super.toString() + ", fach" + fach;
|
||||
return super.toString() + ", fach=" + fach;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Person 15.05.2017 Max 25 1.75
|
||||
Person 15.05.2017 Max 25 1.75
|
||||
xxxxxxxxxxxxxxxxxxxx
|
||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||
xxxxxxxxxxxxxxxxxxxx
|
||||
Employee 04.04.2010 John 30 1.80 50000
|
||||
yyyyyyyyyyyyyyyyyyyy
|
||||
|
|
|
@ -13,9 +13,11 @@ Testen Sie, ob Ihre Implementierung korrekt funktioniert, indem Sie die vorhande
|
|||
Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen.
|
||||
|
||||
3. BufferedWriter/Reader:
|
||||
Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben
|
||||
Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und
|
||||
Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben
|
||||
Sie die Zeilen mit einer fortlaufenden Zeilennummer wieder aus.
|
||||
Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. Verwenden Sie hierzu einen BufferedReader.
|
||||
Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden.
|
||||
Verwenden Sie hierzu einen BufferedReader.
|
||||
|
||||
4. Serialisierung:
|
||||
Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat.
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package Testat1.Tutor_Aufgaben.Buffered;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileWriter;
|
||||
|
||||
public class Buffered {
|
||||
public static void main(String[] args) {
|
||||
String[] data = {
|
||||
"Mondnacht",
|
||||
"Es war, als hätt' der Himmel",
|
||||
"Die Erde still geküsst,",
|
||||
"Dass sie im Blütenschimmer",
|
||||
"Von ihm nun träumen müsst."};
|
||||
int linesNum = data.length;
|
||||
int wordsNum = 0;
|
||||
int charsNum = 0;
|
||||
for (String line : data) {
|
||||
String[] words = line.split("\\s+");
|
||||
wordsNum += words.length;
|
||||
for (String word : words) {
|
||||
charsNum += word.length();
|
||||
}
|
||||
}
|
||||
System.out.println("Anzahl der Wörter: " + wordsNum);
|
||||
System.out.println("Anzahl der Buchstaben: " + charsNum);
|
||||
System.out.println("Anzahl der Zeilen: " + linesNum);
|
||||
}
|
||||
public void write (String[] lines, String data) {
|
||||
try(BufferedWriter writer = new BufferedWriter(new FileWriter(data))){
|
||||
|
||||
for (String line : lines) {
|
||||
writer.write(line);
|
||||
writer.newLine();
|
||||
}
|
||||
}catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -6,6 +6,8 @@ import static org.junit.jupiter.api.Assertions.assertNotSame;
|
|||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import Lernen.Person;
|
||||
|
||||
/**
|
||||
* Test für die Clone-Methoden.
|
||||
*/
|
||||
|
@ -20,7 +22,7 @@ public class AlienCloneTest {
|
|||
@Test
|
||||
void testClone() throws CloneNotSupportedException {
|
||||
// TODO: Einkommentieren (strg+shift+c)
|
||||
Raumanzug r1 = new Raumanzug();
|
||||
Raumanzug r1 = new Raumanzug(new Person());
|
||||
Alien a1 = new Alien("Predator", r1);
|
||||
|
||||
Alien a2 = (Alien) a1.clone();
|
||||
|
|
|
@ -2,6 +2,8 @@ package Testat1.Tutor_Aufgaben.Clone;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
import Lernen.Person;
|
||||
|
||||
/**
|
||||
* Ein Raumanzug.
|
||||
*/
|
||||
|
@ -11,12 +13,13 @@ import java.io.Serializable;
|
|||
* Sauerstoffvorrat, der noch im Raumanzug ist.
|
||||
*/
|
||||
private double sauerstoffVorrat;
|
||||
|
||||
private Person person;
|
||||
/**
|
||||
* Ertzeugt einen neuen Raumanzug.
|
||||
*/
|
||||
public Raumanzug() {
|
||||
public Raumanzug(Person person) {
|
||||
sauerstoffVorrat = Math.random();
|
||||
this.person = person;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -27,7 +30,9 @@ import java.io.Serializable;
|
|||
public double getSauerstoffVorrat() {
|
||||
return sauerstoffVorrat;
|
||||
}
|
||||
|
||||
public Person getPerson() {
|
||||
return person;
|
||||
}
|
||||
/**
|
||||
* Tankt den Anzug auf.
|
||||
*/
|
||||
|
@ -70,8 +75,10 @@ import java.io.Serializable;
|
|||
return Double.doubleToLongBits(sauerstoffVorrat)
|
||||
== Double.doubleToLongBits(other.sauerstoffVorrat);
|
||||
}
|
||||
|
||||
public Raumanzug clone() throws CloneNotSupportedException {
|
||||
Raumanzug r = (Raumanzug) super.clone();
|
||||
r.person = (Person) this.person.clone();
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package Testat1.Tutor_Aufgaben.DateFormatter;
|
||||
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class DateConverter {
|
||||
public static String convertDate(String inputDate) {
|
||||
|
||||
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||
|
||||
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
LocalDate date = LocalDate.parse(inputDate, inputFormatter);
|
||||
|
||||
|
||||
String formattedDate = date.format(outputFormatter);
|
||||
|
||||
return formattedDate;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String inputDate = "20.04.2024";
|
||||
String convertedDate = convertDate(inputDate);
|
||||
System.out.println("Konvertiertes Datum: " + convertedDate);
|
||||
}
|
||||
}
|
|
@ -10,22 +10,26 @@ public class Main {
|
|||
public static void main(String[] args) {
|
||||
// Erstelle ein Produkt
|
||||
Product product = new Product("Handy", "ruft an", 299.99);
|
||||
|
||||
Product product2 = new Product("fdfl", "dfd", 34);
|
||||
// Dateiname für die Serialisierung
|
||||
String dateiname = "serializedProduct.xml";
|
||||
|
||||
// Serialisierung
|
||||
Main.serialize(product, dateiname);
|
||||
Main.serialize(product2, dateiname);
|
||||
|
||||
// Deserialisierung und Ausgabe
|
||||
Product decodedProduct = Main.deserialize(product, dateiname);
|
||||
Product decodedProduct1 = Main.deserialize(product2, dateiname);
|
||||
System.out.printf("Name: %s\nDes: %s\nPrice: %s", decodedProduct.getName(),decodedProduct.getDescription(),decodedProduct.getPrice());
|
||||
System.out.printf("Name: %s\nDes: %s\nPrice: %s", decodedProduct1.getName(),decodedProduct1.getDescription(),decodedProduct1.getPrice());
|
||||
}
|
||||
|
||||
// Methode zur Serialisierung eines Produkts
|
||||
public static void serialize (Product product, String dateiname) {
|
||||
try (XMLEncoder encoder = new XMLEncoder(new FileOutputStream(dateiname))){
|
||||
encoder.writeObject(product);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
package Lernen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import Testat1.Tutor_Aufgaben.Clone.Raumanzug;
|
||||
|
||||
class Person1 implements Cloneable {
|
||||
private String name;
|
||||
private ArrayList<String> hobbies;
|
||||
private Raumanzug raumanzug;
|
||||
|
||||
public Person1(String name, ArrayList<String> hobbies, Raumanzug raumanzug) {
|
||||
this.name = name;
|
||||
this.hobbies = hobbies;
|
||||
this.raumanzug = raumanzug;
|
||||
}
|
||||
|
||||
// Override clone method to provide deep copy
|
||||
@Override
|
||||
public Object clone() throws CloneNotSupportedException {
|
||||
Person1 cloned = (Person1) super.clone();
|
||||
// Deep copy the ArrayList
|
||||
cloned.hobbies = (ArrayList<String>) this.hobbies.clone();
|
||||
cloned.raumanzug = (Raumanzug) this.raumanzug.clone();
|
||||
return cloned;
|
||||
}
|
||||
|
||||
public ArrayList<String> getHobbies(){
|
||||
return hobbies;
|
||||
}
|
||||
public Raumanzug getAnzug() {
|
||||
return raumanzug;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Person{" +
|
||||
"name='" + name + '\'' +
|
||||
", hobbies=" + hobbies +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
public class CloneMitArrayList {
|
||||
public static void main(String[] args) {
|
||||
ArrayList<String> hobbies = new ArrayList<>();
|
||||
hobbies.add("Reading");
|
||||
hobbies.add("Swimming");
|
||||
|
||||
Person1 original = new Person1("Alice", hobbies, new Raumanzug(new Person("amin", "samin", 33)));
|
||||
|
||||
try {
|
||||
Person1 cloned = (Person1) original.clone();
|
||||
|
||||
// Modify the hobbies list in the cloned object
|
||||
cloned.getHobbies().add("Hiking");
|
||||
cloned.getAnzug().setSauerstoffVorrat(3.0);
|
||||
cloned.getAnzug().getPerson().setName("samir");
|
||||
System.out.println("Original: " + original);
|
||||
System.out.println(original.getAnzug().getSauerstoffVorrat());
|
||||
System.out.println(original.getAnzug().getPerson().getName());
|
||||
System.out.println("Cloned: " + cloned);
|
||||
System.out.println(cloned.getAnzug().getSauerstoffVorrat());
|
||||
System.out.println(cloned.getAnzug().getPerson().getName());
|
||||
} catch (CloneNotSupportedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package Lernen;
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
public class DemoSeekMethode {
|
||||
public static void main(String[] args) {
|
||||
// Datei erstellen und Daten schreiben
|
||||
try (RandomAccessFile file = new RandomAccessFile("example.txt", "rw")) {
|
||||
// Daten in die Datei schreiben
|
||||
file.writeBytes("Dies ist ein Beispieltext.");
|
||||
int laenge = "Dies ist ein Beispieltext.".length();
|
||||
System.out.println(laenge);
|
||||
// Den Dateizeiger (Cursor) auf eine bestimmte Position setzen
|
||||
file.seek(0); // Cursor auf die 11. Position setzen (Positionen beginnen bei 0)
|
||||
|
||||
// Daten lesen
|
||||
byte[] buffer = new byte[26]; // Puffer zum Lesen der Daten
|
||||
file.read(buffer); // Daten von der aktuellen Position in den Puffer lesen
|
||||
|
||||
// Daten in eine Zeichenkette konvertieren und ausgeben
|
||||
String text = new String(buffer);
|
||||
System.out.println(text);
|
||||
System.out.println(file.length());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,7 +11,7 @@ public class ObjectInputOutputStreamEx {
|
|||
|
||||
public static void main(String[] args) {
|
||||
String DateiName = "test1.txt";
|
||||
Alien a1 = new Alien ("sfei", new Raumanzug());
|
||||
Alien a1 = new Alien ("sfei", new Raumanzug(new Person()));
|
||||
Alien a2 = a1;
|
||||
Raumanzug r1 = a1.getAnzug();
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package Lernen;
|
||||
|
||||
public class Person {
|
||||
public class Person implements Cloneable{
|
||||
private String name;
|
||||
private String vorname;
|
||||
private int alter;
|
||||
|
@ -32,7 +32,10 @@ public class Person {
|
|||
public int getAlter() {
|
||||
return alter;
|
||||
}
|
||||
|
||||
public Person clone() throws CloneNotSupportedException{
|
||||
Person p = (Person) super.clone();
|
||||
return p;
|
||||
}
|
||||
public void setAlter(int alter) {
|
||||
this.alter = alter;
|
||||
}
|
||||
|
|
|
@ -6,17 +6,17 @@ import Testat1.Tutor_Aufgaben.Clone.Raumanzug;
|
|||
public class Test {
|
||||
|
||||
public static void main(String[] args) throws CloneNotSupportedException {
|
||||
Alien a1 = new Alien("Sirat", new Raumanzug());
|
||||
Raumanzug r = a1.getAnzug();
|
||||
r.auftanken();
|
||||
System.out.println(r);
|
||||
Alien a1 = new Alien("Sirat", new Raumanzug(new Person()));
|
||||
Raumanzug r1 = a1.getAnzug();
|
||||
r1.auftanken();
|
||||
System.out.println(r1);
|
||||
System.out.println(a1.toString());
|
||||
|
||||
Alien a2 = a1.clone();
|
||||
Raumanzug r2 = a2.getAnzug();
|
||||
r2.setSauerstoffVorrat(2);
|
||||
System.out.println(a2.getAnzug());
|
||||
System.out.println(r);
|
||||
System.out.println(r2);
|
||||
System.out.println(r1);
|
||||
System.out.println(a2.toString());
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
package Lernen;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
public class WordCounter {
|
||||
public static void main(String[] args) {
|
||||
// Dateipfad zur gedichte.txt
|
||||
String filePath = "gedichte.txt";
|
||||
|
||||
// TreeMap zur Speicherung der Wörter und ihrer Häufigkeiten
|
||||
TreeMap<String, Integer> wordCountMap = new TreeMap<>();
|
||||
|
||||
// Zähle die Wörter in der Datei und finde das längste Wort
|
||||
int longestWordLength = countWords(filePath, wordCountMap);
|
||||
|
||||
// Sortiere die TreeMap nach den Häufigkeiten
|
||||
List<Map.Entry<String, Integer>> sortedWordList = new ArrayList<>(wordCountMap.entrySet());
|
||||
sortedWordList.sort(Map.Entry.comparingByValue(Collections.reverseOrder()));
|
||||
|
||||
// Gib die Wörter und ihre Häufigkeiten aus
|
||||
System.out.println("Wortauflistung:");
|
||||
for (Map.Entry<String, Integer> entry : sortedWordList) {
|
||||
System.out.println("'" + entry.getKey() + "' kommt " + entry.getValue() + "-mal vor");
|
||||
}
|
||||
|
||||
// Gib die Anzahl der verschiedenen Wörter aus
|
||||
System.out.println("Es sind " + wordCountMap.size() + " verschiedene Worte");
|
||||
|
||||
// Gib das häufigste Wort aus
|
||||
System.out.println("Das häufigste Wort ist '" + sortedWordList.get(0).getKey() + "', es kommt " +
|
||||
sortedWordList.get(0).getValue() + "-mal vor");
|
||||
|
||||
// Gib das längste Wort aus
|
||||
System.out.println("Das längste Wort hat eine Länge von " + longestWordLength + " Zeichen");
|
||||
}
|
||||
|
||||
public static int countWords(String filePath, TreeMap<String, Integer> wordCountMap) {
|
||||
int longestWordLength = Integer.MIN_VALUE; // Initialisiere mit dem kleinsten möglichen Wert
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] words = line.split("\\s+");
|
||||
for (String word : words) {
|
||||
word = word.toLowerCase().replaceAll("[^a-zA-ZäöüÄÖÜß]", ""); // Entferne Sonderzeichen
|
||||
if (!word.isEmpty()) {
|
||||
wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1);
|
||||
longestWordLength = Math.max(longestWordLength, word.length()); // Aktualisiere die maximale Wortlänge
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return longestWordLength;
|
||||
}
|
||||
}
|
||||
//Ohne Sortierung
|
||||
//Dateipfad zur gedichte.txt
|
||||
/*String filePath = "gedichte.txt";
|
||||
|
||||
// HashMap zur Speicherung der Wörter und ihrer Häufigkeiten
|
||||
HashMap<String, Integer> wordCountMap = new HashMap<>();
|
||||
|
||||
// Zähle die Wörter in der Datei und finde das längste Wort
|
||||
int longestWordLength = countWords(filePath, wordCountMap);
|
||||
|
||||
// Gib die Wörter und ihre Häufigkeiten aus
|
||||
System.out.println("Wortauflistung:");
|
||||
for (String word : wordCountMap.keySet()) {
|
||||
int count = wordCountMap.get(word);
|
||||
System.out.println("'" + word + "' kommt " + count + "-mal vor");
|
||||
}
|
||||
|
||||
// Gib die Anzahl der verschiedenen Wörter aus
|
||||
System.out.println("Es sind " + wordCountMap.size() + " verschiedene Worte");
|
||||
|
||||
// Gib das häufigste Wort aus
|
||||
String mostFrequentWord = "";
|
||||
int maxFrequency = 0;
|
||||
for (String word : wordCountMap.keySet()) {
|
||||
int count = wordCountMap.get(word);
|
||||
if (count > maxFrequency) {
|
||||
maxFrequency = count;
|
||||
mostFrequentWord = word;
|
||||
}
|
||||
}
|
||||
System.out.println("Das häufigste Wort ist '" + mostFrequentWord + "', es kommt " + maxFrequency + "-mal vor");
|
||||
|
||||
// Gib das längste Wort aus
|
||||
System.out.println("Das längste Wort hat eine Länge von " + longestWordLength + " Zeichen");*/
|
|
@ -1,15 +1,15 @@
|
|||
package Uebung3_Buchungen;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class Buchung {
|
||||
|
||||
int buchungsnummer;
|
||||
Date Buchungsdatum;
|
||||
LocalDate Buchungsdatum;
|
||||
String buchungskonto;
|
||||
private double buchungsbetrag;
|
||||
|
||||
private Buchung(int buchungsnummer, Date buchungsdatum, String buchungskonto, double buchungsbetrag) {
|
||||
public Buchung(int buchungsnummer, LocalDate buchungsdatum, String buchungskonto, double buchungsbetrag) {
|
||||
this.buchungsnummer = buchungsnummer;
|
||||
Buchungsdatum = buchungsdatum;
|
||||
this.buchungskonto = buchungskonto;
|
||||
|
|
|
@ -1,40 +1,47 @@
|
|||
package Uebung3_Buchungen;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class BuchungenAufgabe {
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws FileNotFoundException, IOException {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||
ArrayList<Buchung> under1000 = new ArrayList<>();
|
||||
ArrayList<Buchung> over1000 = new ArrayList<>();
|
||||
|
||||
ArrayList<ArrayList> overEqual100 = new ArrayList<>();
|
||||
ArrayList<ArrayList> lessEqual100 = new ArrayList<>();
|
||||
String dateiName = "buchungen.text";
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(dateiName))){
|
||||
try(BufferedReader reader = new BufferedReader(new FileReader("buchungen2.text"))){
|
||||
String line;
|
||||
while (( line = reader.readLine()) != null) {
|
||||
// String[] split1 = line.split("\"");
|
||||
// String [] split2 = split1[0].split(" ");
|
||||
// String [] zsm = {split2[0], split2[1], split1[1], split1[2]};
|
||||
// Buchung buchung = new Buchung("...");
|
||||
ArrayList<String> data = splitIgnoringQuotes(line);
|
||||
if (Double.parseDouble(data.get(3)) < 1000) {
|
||||
lessEqual100.add(data);
|
||||
}else {
|
||||
overEqual100.add(data);
|
||||
while((line = reader.readLine()) != null){
|
||||
String[] parts = line.split("\"");
|
||||
String[] numsParts = parts[0].split("\\s+");
|
||||
int bnummer = Integer.parseInt(numsParts[0]);
|
||||
LocalDate date = LocalDate.parse(numsParts[1], formatter);
|
||||
String name = parts[2];
|
||||
double value = Double.parseDouble(parts[2]);
|
||||
|
||||
if(value >= 1000.00) {
|
||||
over1000.add(new Buchung(bnummer, date, name, value));
|
||||
}else if(value < 1000.00) {
|
||||
under1000.add(new Buchung(bnummer, date, name, value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
for (ArrayList arrayList : lessEqual100) {
|
||||
System.out.println(arrayList.toString());
|
||||
double gesammtSumme = 0.0;
|
||||
for ( Buchung buchung : under1000) {
|
||||
System.out.println(buchung.toString());
|
||||
gesammtSumme += buchung.getBuchungsbetrag();
|
||||
}
|
||||
for ( Buchung buchung : over1000) {
|
||||
System.out.println(buchung.toString());
|
||||
gesammtSumme += buchung.getBuchungsbetrag();
|
||||
}
|
||||
System.out.println("Gesammte Summe: " + gesammtSumme);
|
||||
}
|
||||
}
|
||||
public static ArrayList<String> splitIgnoringQuotes(String input) {
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
package Uebung3_Buchungen;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class Reader {
|
||||
|
||||
public static void main(String[] args) {
|
||||
int buchungsnummer;
|
||||
Date Buchungsdatum;
|
||||
String buchungskonto;
|
||||
double buchungsbetrag;
|
||||
ArrayList<ArrayList> overEqual100 = new ArrayList<>();
|
||||
ArrayList<ArrayList> lessEqual100 = new ArrayList<>();
|
||||
String dateiName = "buchungen.text";
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(dateiName))){
|
||||
String line;
|
||||
while (( line = reader.readLine()) != null) {
|
||||
ArrayList<String> data = splitIgnoringQuotes(line);
|
||||
if (Double.parseDouble(data.get(3)) < 1000) {
|
||||
lessEqual100.add(data);
|
||||
}else {
|
||||
overEqual100.add(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
for (ArrayList arrayList : lessEqual100) {
|
||||
System.out.println(arrayList.toString());
|
||||
}
|
||||
}
|
||||
public static ArrayList<String> splitIgnoringQuotes(String input) {
|
||||
ArrayList<String> parts = new ArrayList<>();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
boolean insideQuotes = false;
|
||||
|
||||
for (char c : input.toCharArray()) {
|
||||
if (c == '\"') {
|
||||
insideQuotes = !insideQuotes;
|
||||
} else if (c == ' ' && !insideQuotes) {
|
||||
parts.add(sb.toString());
|
||||
sb.setLength(0);
|
||||
} else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
|
||||
if (sb.length() > 0) {
|
||||
parts.add(sb.toString());
|
||||
}
|
||||
|
||||
return parts;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,2 +1,8 @@
|
|||
/Uebung2_IO/
|
||||
/Testat1/
|
||||
/Lernen/
|
||||
/Uebung3_Buchungen/
|
||||
/example.txt
|
||||
/buchungen2.text
|
||||
/serializedProduct.xml
|
||||
/gedichte.txt
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
Person 15.05.2017 Max 25 1.75
|
||||
Person 15.05.2017 Max 25 1.75
|
||||
xxxxxxxxxxxxxxxxxxxx
|
||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||
xxxxxxxxxxxxxxxxxxxx
|
||||
Employee 04.04.2010 John 30 1.80 50000
|
||||
yyyyyyyyyyyyyyyyyyyy
|
||||
|
|
|
@ -13,9 +13,11 @@ Testen Sie, ob Ihre Implementierung korrekt funktioniert, indem Sie die vorhande
|
|||
Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen.
|
||||
|
||||
3. BufferedWriter/Reader:
|
||||
Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben
|
||||
Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und
|
||||
Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben
|
||||
Sie die Zeilen mit einer fortlaufenden Zeilennummer wieder aus.
|
||||
Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. Verwenden Sie hierzu einen BufferedReader.
|
||||
Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden.
|
||||
Verwenden Sie hierzu einen BufferedReader.
|
||||
|
||||
4. Serialisierung:
|
||||
Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat.
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,7 @@
|
|||
1 22.03.2024 "Einzahlung" 1000.00
|
||||
2 22.03.2024 "Einzahlung" 50.00
|
||||
3 23.03.2024 "Einkauf Edeka" -45.45
|
||||
4 24.03.2024 "Gehalt" 1200.00
|
||||
5 31.03.2024 "Mietzins Wohnung" -1100.00
|
||||
6 31.03.2024 "Nebenkostenpauschale Wohnung" -250.00
|
||||
7 04.04.2024 "Einkauf Netto" 42.02
|
|
@ -0,0 +1,145 @@
|
|||
die zwei gesellen
|
||||
|
||||
es zogen zwei ruestge gesellen
|
||||
zum erstenmal von haus
|
||||
so jubelnd recht in die hellen
|
||||
klingenden singenden wellen
|
||||
des vollen fruehlings hinaus
|
||||
|
||||
die strebten nach hohen dingen
|
||||
die wollten trotz lust und schmerz
|
||||
was rechts in der welt vollbringen
|
||||
und wem sie voruebergingen
|
||||
dem lachten sinn und herz
|
||||
|
||||
der erste der fand ein liebchen
|
||||
die schwieger kauft hof und haus
|
||||
der wiegte gar bald ein buebchen
|
||||
und sah aus heimlichem stuebchen
|
||||
behaglich ins feld hinaus
|
||||
|
||||
dem zweiten sangen und logen
|
||||
die tausend stimmen im grund
|
||||
verlockend sirenen und zogen
|
||||
ihn in der buhlenden wogen
|
||||
farbig klingenden schlund
|
||||
|
||||
und wie er auftaucht vom schlunde
|
||||
da war er muede und alt
|
||||
sein schifflein das lag im grunde
|
||||
so still wars rings in der runde
|
||||
und ueber die wasser wehts kalt
|
||||
|
||||
es singen und klingen die wellen
|
||||
des fruehlings wohl ueber mir
|
||||
und seh ich so kecke gesellen
|
||||
die traenen im auge mir schwellen
|
||||
ach gott fuehr mich liebreich zu dir
|
||||
|
||||
|
||||
|
||||
|
||||
mondnacht
|
||||
|
||||
es war als haett der himmel
|
||||
die erde still gekuesst
|
||||
dass sie im bluetenschimmer
|
||||
von ihm nun traeumen muesst
|
||||
|
||||
die luft ging durch die felder
|
||||
die aehren wogten sacht
|
||||
es rauschten leis die waelder
|
||||
so sternklar war die nacht
|
||||
|
||||
und meine seele spannte
|
||||
weit ihre fluegel aus
|
||||
flog durch die stillen lande
|
||||
als floege sie nach haus
|
||||
|
||||
|
||||
|
||||
die loreley
|
||||
|
||||
ich weiss nicht was soll es bedeuten
|
||||
dass ich so traurig bin
|
||||
ein maerchen aus alten zeiten
|
||||
das kommt mir nicht aus dem sinn
|
||||
|
||||
die luft ist kuehl und es dunkelt
|
||||
und ruhig fliesst der rhein
|
||||
der gipfel des berges funkelt
|
||||
im abendsonnenschein
|
||||
|
||||
die schoenste jungfrau sitzet
|
||||
dort oben wunderbar
|
||||
ihr goldnes geschmeide blitzet
|
||||
sie kaemmt ihr goldenes haar
|
||||
|
||||
sie kaemmt es mit goldenem kamme
|
||||
und singt ein lied dabei
|
||||
das hat eine wundersame
|
||||
gewaltige melodei
|
||||
|
||||
den schiffer im kleinen schiffe
|
||||
ergreift es mit wildem weh
|
||||
er schaut nicht die felsenriffe
|
||||
er schaut nur hinauf in die hoeh
|
||||
|
||||
ich glaube die wellen verschlingen
|
||||
am ende schiffer und kahn
|
||||
und das hat mit ihrem singen
|
||||
die loreley getan
|
||||
|
||||
|
||||
|
||||
nachtgedanken
|
||||
|
||||
denk ich an deutschland in der nacht
|
||||
dann bin ich um den schlaf gebracht
|
||||
ich kann nicht mehr die augen schliessen
|
||||
und meine heissen traenen fliessen
|
||||
|
||||
die jahre kommen und vergehn
|
||||
seit ich die mutter nicht gesehn
|
||||
zwoelf jahre sind schon hingegangen
|
||||
es waechst mein sehnen und verlangen
|
||||
|
||||
mein sehnen und verlangen waechst
|
||||
die alte frau hat mich behext
|
||||
ich denke immer an die alte
|
||||
die alte frau die gott erhalte
|
||||
|
||||
die alte frau hat mich so lieb
|
||||
und in den briefen die sie schrieb
|
||||
seh ich wie ihre hand gezittert
|
||||
wie tief das mutterherz erschuettert
|
||||
|
||||
die mutter liegt mir stets im sinn
|
||||
zwoelf lange jahre flossen hin
|
||||
zwoelf lange jahre sind verflossen
|
||||
seit ich sie nicht ans herz geschlossen
|
||||
|
||||
deutschland hat ewigen bestand
|
||||
es ist ein kerngesundes land
|
||||
mit seinen eichen seinen linden
|
||||
werd ich es immer wiederfinden
|
||||
|
||||
nach deutschland lechzt ich nicht so sehr
|
||||
wenn nicht die mutter dorten waer
|
||||
das vaterland wird nie verderben
|
||||
jedoch die alte frau kann sterben
|
||||
|
||||
seit ich das land verlassen hab
|
||||
so viele sanken dort ins grab
|
||||
die ich geliebt wenn ich sie zaehle
|
||||
so will verbluten meine seele
|
||||
|
||||
und zaehlen muss ich mit der zahl
|
||||
schwillt immer hoeher meine qual
|
||||
mir ist als waelzten sich die leichen
|
||||
auf meine brust gottlob sie weichen
|
||||
|
||||
gottlob durch meine fenster bricht
|
||||
franzoesisch heitres tageslicht
|
||||
es kommt mein weib schoen wie der morgen
|
||||
und laechelt fort die deutschen sorgen
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<java version="20.0.2" class="java.beans.XMLDecoder">
|
||||
<object class="Testat1.Tutor_Aufgaben.Serialisierung.Product">
|
||||
<void property="description">
|
||||
<string>dfd</string>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>fdfl</string>
|
||||
</void>
|
||||
<void property="price">
|
||||
<double>34.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
Loading…
Reference in New Issue