new Exercises
parent
04857a62e5
commit
06212004e2
|
|
@ -12,6 +12,6 @@ public class Employee extends Person{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + ", salary= " + salary;
|
return super.toString() + ", salary=" + salary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,63 @@
|
||||||
package Testat1.Aufgabe2;
|
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 class Main {
|
||||||
public static void main(String[] args) {
|
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
|
@Override
|
||||||
public String toString() {
|
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() {
|
public int getAge() {
|
||||||
|
|
||||||
return age;
|
return age;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,6 @@ public class Teacher extends Person{
|
||||||
this.fach = fach;
|
this.fach = fach;
|
||||||
}
|
}
|
||||||
public String toString() {
|
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
|
xxxxxxxxxxxxxxxxxxxx
|
||||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||||
xxxxxxxxxxxxxxxxxxxx
|
xxxxxxxxxxxxxxxxxxxx
|
||||||
Employee 04.04.2010 John 30 1.80 50000
|
Employee 04.04.2010 John 30 1.80 50000
|
||||||
yyyyyyyyyyyyyyyyyyyy
|
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.
|
Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen.
|
||||||
|
|
||||||
3. BufferedWriter/Reader:
|
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.
|
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:
|
4. Serialisierung:
|
||||||
Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat.
|
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 org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import Lernen.Person;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test für die Clone-Methoden.
|
* Test für die Clone-Methoden.
|
||||||
*/
|
*/
|
||||||
|
|
@ -20,7 +22,7 @@ public class AlienCloneTest {
|
||||||
@Test
|
@Test
|
||||||
void testClone() throws CloneNotSupportedException {
|
void testClone() throws CloneNotSupportedException {
|
||||||
// TODO: Einkommentieren (strg+shift+c)
|
// TODO: Einkommentieren (strg+shift+c)
|
||||||
Raumanzug r1 = new Raumanzug();
|
Raumanzug r1 = new Raumanzug(new Person());
|
||||||
Alien a1 = new Alien("Predator", r1);
|
Alien a1 = new Alien("Predator", r1);
|
||||||
|
|
||||||
Alien a2 = (Alien) a1.clone();
|
Alien a2 = (Alien) a1.clone();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package Testat1.Tutor_Aufgaben.Clone;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import Lernen.Person;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ein Raumanzug.
|
* Ein Raumanzug.
|
||||||
*/
|
*/
|
||||||
|
|
@ -11,12 +13,13 @@ import java.io.Serializable;
|
||||||
* Sauerstoffvorrat, der noch im Raumanzug ist.
|
* Sauerstoffvorrat, der noch im Raumanzug ist.
|
||||||
*/
|
*/
|
||||||
private double sauerstoffVorrat;
|
private double sauerstoffVorrat;
|
||||||
|
private Person person;
|
||||||
/**
|
/**
|
||||||
* Ertzeugt einen neuen Raumanzug.
|
* Ertzeugt einen neuen Raumanzug.
|
||||||
*/
|
*/
|
||||||
public Raumanzug() {
|
public Raumanzug(Person person) {
|
||||||
sauerstoffVorrat = Math.random();
|
sauerstoffVorrat = Math.random();
|
||||||
|
this.person = person;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -27,7 +30,9 @@ import java.io.Serializable;
|
||||||
public double getSauerstoffVorrat() {
|
public double getSauerstoffVorrat() {
|
||||||
return sauerstoffVorrat;
|
return sauerstoffVorrat;
|
||||||
}
|
}
|
||||||
|
public Person getPerson() {
|
||||||
|
return person;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Tankt den Anzug auf.
|
* Tankt den Anzug auf.
|
||||||
*/
|
*/
|
||||||
|
|
@ -70,8 +75,10 @@ import java.io.Serializable;
|
||||||
return Double.doubleToLongBits(sauerstoffVorrat)
|
return Double.doubleToLongBits(sauerstoffVorrat)
|
||||||
== Double.doubleToLongBits(other.sauerstoffVorrat);
|
== Double.doubleToLongBits(other.sauerstoffVorrat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Raumanzug clone() throws CloneNotSupportedException {
|
public Raumanzug clone() throws CloneNotSupportedException {
|
||||||
Raumanzug r = (Raumanzug) super.clone();
|
Raumanzug r = (Raumanzug) super.clone();
|
||||||
|
r.person = (Person) this.person.clone();
|
||||||
return r;
|
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) {
|
public static void main(String[] args) {
|
||||||
// Erstelle ein Produkt
|
// Erstelle ein Produkt
|
||||||
Product product = new Product("Handy", "ruft an", 299.99);
|
Product product = new Product("Handy", "ruft an", 299.99);
|
||||||
|
Product product2 = new Product("fdfl", "dfd", 34);
|
||||||
// Dateiname für die Serialisierung
|
// Dateiname für die Serialisierung
|
||||||
String dateiname = "serializedProduct.xml";
|
String dateiname = "serializedProduct.xml";
|
||||||
|
|
||||||
// Serialisierung
|
// Serialisierung
|
||||||
Main.serialize(product, dateiname);
|
Main.serialize(product, dateiname);
|
||||||
|
Main.serialize(product2, dateiname);
|
||||||
|
|
||||||
// Deserialisierung und Ausgabe
|
// Deserialisierung und Ausgabe
|
||||||
Product decodedProduct = Main.deserialize(product, dateiname);
|
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", 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
|
// Methode zur Serialisierung eines Produkts
|
||||||
public static void serialize (Product product, String dateiname) {
|
public static void serialize (Product product, String dateiname) {
|
||||||
try (XMLEncoder encoder = new XMLEncoder(new FileOutputStream(dateiname))){
|
try (XMLEncoder encoder = new XMLEncoder(new FileOutputStream(dateiname))){
|
||||||
encoder.writeObject(product);
|
encoder.writeObject(product);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
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) {
|
public static void main(String[] args) {
|
||||||
String DateiName = "test1.txt";
|
String DateiName = "test1.txt";
|
||||||
Alien a1 = new Alien ("sfei", new Raumanzug());
|
Alien a1 = new Alien ("sfei", new Raumanzug(new Person()));
|
||||||
Alien a2 = a1;
|
Alien a2 = a1;
|
||||||
Raumanzug r1 = a1.getAnzug();
|
Raumanzug r1 = a1.getAnzug();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package Lernen;
|
package Lernen;
|
||||||
|
|
||||||
public class Person {
|
public class Person implements Cloneable{
|
||||||
private String name;
|
private String name;
|
||||||
private String vorname;
|
private String vorname;
|
||||||
private int alter;
|
private int alter;
|
||||||
|
|
@ -32,7 +32,10 @@ public class Person {
|
||||||
public int getAlter() {
|
public int getAlter() {
|
||||||
return alter;
|
return alter;
|
||||||
}
|
}
|
||||||
|
public Person clone() throws CloneNotSupportedException{
|
||||||
|
Person p = (Person) super.clone();
|
||||||
|
return p;
|
||||||
|
}
|
||||||
public void setAlter(int alter) {
|
public void setAlter(int alter) {
|
||||||
this.alter = alter;
|
this.alter = alter;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,17 @@ import Testat1.Tutor_Aufgaben.Clone.Raumanzug;
|
||||||
public class Test {
|
public class Test {
|
||||||
|
|
||||||
public static void main(String[] args) throws CloneNotSupportedException {
|
public static void main(String[] args) throws CloneNotSupportedException {
|
||||||
Alien a1 = new Alien("Sirat", new Raumanzug());
|
Alien a1 = new Alien("Sirat", new Raumanzug(new Person()));
|
||||||
Raumanzug r = a1.getAnzug();
|
Raumanzug r1 = a1.getAnzug();
|
||||||
r.auftanken();
|
r1.auftanken();
|
||||||
System.out.println(r);
|
System.out.println(r1);
|
||||||
System.out.println(a1.toString());
|
System.out.println(a1.toString());
|
||||||
|
|
||||||
Alien a2 = a1.clone();
|
Alien a2 = a1.clone();
|
||||||
Raumanzug r2 = a2.getAnzug();
|
Raumanzug r2 = a2.getAnzug();
|
||||||
r2.setSauerstoffVorrat(2);
|
r2.setSauerstoffVorrat(2);
|
||||||
System.out.println(a2.getAnzug());
|
System.out.println(r2);
|
||||||
System.out.println(r);
|
System.out.println(r1);
|
||||||
System.out.println(a2.toString());
|
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;
|
package Uebung3_Buchungen;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
public class Buchung {
|
public class Buchung {
|
||||||
|
|
||||||
int buchungsnummer;
|
int buchungsnummer;
|
||||||
Date Buchungsdatum;
|
LocalDate Buchungsdatum;
|
||||||
String buchungskonto;
|
String buchungskonto;
|
||||||
private double buchungsbetrag;
|
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;
|
this.buchungsnummer = buchungsnummer;
|
||||||
Buchungsdatum = buchungsdatum;
|
Buchungsdatum = buchungsdatum;
|
||||||
this.buchungskonto = buchungskonto;
|
this.buchungskonto = buchungskonto;
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,47 @@
|
||||||
package Uebung3_Buchungen;
|
package Uebung3_Buchungen;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class BuchungenAufgabe {
|
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<>();
|
try(BufferedReader reader = new BufferedReader(new FileReader("buchungen2.text"))){
|
||||||
ArrayList<ArrayList> lessEqual100 = new ArrayList<>();
|
|
||||||
String dateiName = "buchungen.text";
|
|
||||||
try (BufferedReader reader = new BufferedReader(new FileReader(dateiName))){
|
|
||||||
String line;
|
String line;
|
||||||
while (( line = reader.readLine()) != null) {
|
while((line = reader.readLine()) != null){
|
||||||
// String[] split1 = line.split("\"");
|
String[] parts = line.split("\"");
|
||||||
// String [] split2 = split1[0].split(" ");
|
String[] numsParts = parts[0].split("\\s+");
|
||||||
// String [] zsm = {split2[0], split2[1], split1[1], split1[2]};
|
int bnummer = Integer.parseInt(numsParts[0]);
|
||||||
// Buchung buchung = new Buchung("...");
|
LocalDate date = LocalDate.parse(numsParts[1], formatter);
|
||||||
ArrayList<String> data = splitIgnoringQuotes(line);
|
String name = parts[2];
|
||||||
if (Double.parseDouble(data.get(3)) < 1000) {
|
double value = Double.parseDouble(parts[2]);
|
||||||
lessEqual100.add(data);
|
|
||||||
}else {
|
if(value >= 1000.00) {
|
||||||
overEqual100.add(data);
|
over1000.add(new Buchung(bnummer, date, name, value));
|
||||||
|
}else if(value < 1000.00) {
|
||||||
|
under1000.add(new Buchung(bnummer, date, name, value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
double gesammtSumme = 0.0;
|
||||||
|
for ( Buchung buchung : under1000) {
|
||||||
} catch (Exception e) {
|
System.out.println(buchung.toString());
|
||||||
e.printStackTrace();
|
gesammtSumme += buchung.getBuchungsbetrag();
|
||||||
}
|
}
|
||||||
for (ArrayList arrayList : lessEqual100) {
|
for ( Buchung buchung : over1000) {
|
||||||
System.out.println(arrayList.toString());
|
System.out.println(buchung.toString());
|
||||||
|
gesammtSumme += buchung.getBuchungsbetrag();
|
||||||
|
}
|
||||||
|
System.out.println("Gesammte Summe: " + gesammtSumme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static ArrayList<String> splitIgnoringQuotes(String input) {
|
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/
|
/Uebung2_IO/
|
||||||
/Testat1/
|
/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
|
xxxxxxxxxxxxxxxxxxxx
|
||||||
Student 12.09.2020 Lisa 20 1.60 Physics
|
Student 12.09.2020 Lisa 20 1.60 Physics
|
||||||
xxxxxxxxxxxxxxxxxxxx
|
xxxxxxxxxxxxxxxxxxxx
|
||||||
Employee 04.04.2010 John 30 1.80 50000
|
Employee 04.04.2010 John 30 1.80 50000
|
||||||
yyyyyyyyyyyyyyyyyyyy
|
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.
|
Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen.
|
||||||
|
|
||||||
3. BufferedWriter/Reader:
|
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.
|
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:
|
4. Serialisierung:
|
||||||
Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat.
|
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