Final Form Vorlesung 1

This commit is contained in:
cmerkens 2024-05-07 00:41:39 +02:00
parent 1313918745
commit b8396881f7
3 changed files with 172 additions and 84 deletions

View File

@ -32,7 +32,7 @@ public class Vorlesung1 {
System.out.println("Als CSV?"); System.out.println("Als CSV?");
was = eingabe.readLine(); was = eingabe.readLine();
if (was == "1") { if (was.equals("1")) {
liste.mitTrennzeichen(Integer.parseInt(laenge)); liste.mitTrennzeichen(Integer.parseInt(laenge));
} else { } else {
liste.mitLeerzeichen(Integer.parseInt(laenge)); liste.mitLeerzeichen(Integer.parseInt(laenge));
@ -46,13 +46,16 @@ public class Vorlesung1 {
private static ArrayList<String> erstelleArrays(int index) { private static ArrayList<String> erstelleArrays(int index) {
ArrayList<String> rueckgabe = new ArrayList<>(); ArrayList<String> rueckgabe = new ArrayList<>();
String zeile; String zeile;
String[] dateien = new String[]{"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt", String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt", String[] dateien = new String[]{
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt", verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Nachnamen.txt",
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt"}; verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Vornamen.txt",
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Strassen.txt",
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "PLZOrt.txt"
};
try { try {
BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index])); BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index]));
while ((zeile=leseQuelle.readLine()) != null) { while ((zeile = leseQuelle.readLine()) != null) {
rueckgabe.add(zeile); rueckgabe.add(zeile);
} }
leseQuelle.close(); leseQuelle.close();
@ -77,7 +80,8 @@ public class Vorlesung1 {
public void mitTrennzeichen(int anzahl) { public void mitTrennzeichen(int anzahl) {
try { try {
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt")); String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "trennzeichen.txt"));
Random random = new Random(); Random random = new Random();
for (int i = 0; i < anzahl; i++) { for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder(); StringBuilder fertigerEintrag = new StringBuilder();
@ -100,7 +104,7 @@ public class Vorlesung1 {
fertigerEintrag.append(plzort.get(random.nextInt(plzort.size()))); fertigerEintrag.append(plzort.get(random.nextInt(plzort.size())));
fertigerEintrag.append("#"); fertigerEintrag.append("#");
// Umsatz // Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000))); fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500));
fertigerEintrag.append("#"); fertigerEintrag.append("#");
schreibeDatei.write(fertigerEintrag.toString()); schreibeDatei.write(fertigerEintrag.toString());
@ -115,7 +119,8 @@ public class Vorlesung1 {
public void mitLeerzeichen(int anzahl) { public void mitLeerzeichen(int anzahl) {
try { try {
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt")); String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "festeBreite.txt"));
Random random = new Random(); Random random = new Random();
for (int i = 0; i < anzahl; i++) { for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder(); StringBuilder fertigerEintrag = new StringBuilder();
@ -132,7 +137,7 @@ public class Vorlesung1 {
// PLZ Ort // PLZ Ort
fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25)); fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25));
// Umsatz // Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000))); fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500));
schreibeDatei.write(fertigerEintrag.toString()); schreibeDatei.write(fertigerEintrag.toString());
schreibeDatei.newLine(); schreibeDatei.newLine();

View File

@ -0,0 +1,27 @@
package Semester2;
import java.util.StringTokenizer;
public class Vorlesung1part2 {
public static void main(String[] args) {
String input = "Dieser Text hat 6 Worte und 2 Zahlen.";
StringTokenizer tokenizer = new StringTokenizer(input);
int zahlcount = 0;
int wortcount = 0;
while (tokenizer.hasMoreTokens()) {
String wort = tokenizer.nextToken();
if (wort.matches("\\d+")) {
System.out.println("ZAHL: " + wort);
zahlcount++;
} else {
System.out.println("WORT: " + wort);
wortcount++;
}
}
System.out.println("Zahlen: " + zahlcount);
System.out.println("Wörter: " + wortcount);
System.out.println("Insgesamt: " + (wortcount+zahlcount));
}
}

View File

@ -1,95 +1,151 @@
package Semester2; package Semester2;
import java.io.*; import java.io.*;
import java.util.HashMap; import java.util.ArrayList;
import java.util.Random;
public class test { public class test {
// [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz] // [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz]
public static void main (String[] args) { private ArrayList<String> nachnamen = erstelleArrays(0);
try { private ArrayList<String> vornamen = erstelleArrays(1);
File festeBreite = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"); private ArrayList<String> strassen = erstelleArrays(2);
File trennzeichen = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt"); private ArrayList<String> plzort = erstelleArrays(3);
festeBreite.createNewFile();
trennzeichen.createNewFile(); public test() {
} catch (Exception e) { this.nachnamen = erstelleArrays(0);
System.out.println(e.getMessage()); this.vornamen = erstelleArrays(1);
System.out.println("error"); this.strassen = erstelleArrays(2);
this.plzort = erstelleArrays(3);
} }
HashMap<String, Integer> dateien = new HashMap<>(); public static void main(String[] args) {
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt", 20); Vorlesung1 liste = new Vorlesung1();
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt", 20);
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt", 20);
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt", 20);
try { try {
// eröffne leere Temp Datei BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
File tempDatei = File.createTempFile("temp_", ".txt"); String laenge;
System.out.println("Wie viele Testsätze: ");
laenge = eingabe.readLine();
String was;
System.out.println("Als CSV?");
was = eingabe.readLine();
for (String i : dateien.keySet()) { if (was.equals("1")) {
// eröffne Zieldatei liste.mitTrennzeichen(Integer.parseInt(laenge));
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"));
String zeile;
String tempzeile;
// lese Quelle und Temp aus
BufferedReader leseQuelle = new LineNumberReader(new FileReader(i));
BufferedReader leseTemp = new BufferedReader(new FileReader(tempDatei));
while ((zeile=leseQuelle.readLine()) != null) {
int laenge = zeile.length();
if (laenge <= dateien.get(i)) {
// Leerzeichen hinzufügen
zeile = mitLeerzeichen(dateien.get(i)-laenge, zeile);
// Füge Quelle und Temp zusammen in Zieldatei
if ((tempzeile=leseTemp.readLine()) != null) {
schreibeDatei.write(tempzeile+zeile);
} else { } else {
zeile = mitLeerzeichen(dateien.get(i), zeile); liste.mitLeerzeichen(Integer.parseInt(laenge));
schreibeDatei.write(zeile);
}
schreibeDatei.newLine();
}
}
// Füge den Rest der Tempdatei ein
while ((tempzeile=leseTemp.readLine()) != null) {
tempzeile = mitLeerzeichen(dateien.get(i), tempzeile);
schreibeDatei.write(tempzeile);
schreibeDatei.newLine();
}
schreibeDatei.close();
leseQuelle.close();
leseTemp.close();
// Lese Zieldatei und kopiere in Temp
BufferedReader leseDatei = new BufferedReader(new FileReader("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"));
BufferedWriter schreibeTemp = new BufferedWriter(new FileWriter(tempDatei));
while ((zeile=leseDatei.readLine()) != null) {
schreibeTemp.write(zeile);
schreibeTemp.newLine();
}
schreibeTemp.close();
leseDatei.close();
} }
} catch (Exception e) { } catch (Exception e) {
System.out.println(e.getMessage()); System.out.println(e.getMessage());
System.out.println("error");
} }
} }
public static String mitLeerzeichen(int laenge, String daten) {
for (int i = 0; i <= laenge; i++) { private static ArrayList<String> erstelleArrays(int index) {
daten = daten.concat(" "); ArrayList<String> rueckgabe = new ArrayList<>();
String zeile;
String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
String[] dateien = new String[]{
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Nachnamen.txt",
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Vornamen.txt",
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Strassen.txt",
verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "PLZOrt.txt"
};
try {
BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index]));
while ((zeile = leseQuelle.readLine()) != null) {
rueckgabe.add(zeile);
} }
return daten; leseQuelle.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return rueckgabe;
} }
private static String fuelleMitLeerzeichen(ArrayList<String> liste, int laenge) {
Random random = new Random();
String neu = liste.get(random.nextInt(liste.size()));
if (neu.length() < laenge) {
neu = neu + " ".repeat(laenge - neu.length());
}
return neu;
}
public void mitTrennzeichen(int anzahl) {
try {
String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "trennzeichen.txt"));
Random random = new Random();
for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder();
// Kundennummer
fertigerEintrag.append(String.format("%06d", i));
fertigerEintrag.append("#");
// Nachname
fertigerEintrag.append(nachnamen.get(random.nextInt(nachnamen.size())));
fertigerEintrag.append("#");
// Vorname
fertigerEintrag.append(vornamen.get(random.nextInt(vornamen.size())));
fertigerEintrag.append("#");
// Straße
fertigerEintrag.append(strassen.get(random.nextInt(strassen.size())));
fertigerEintrag.append("#");
// Hausnummer
fertigerEintrag.append(String.format("%05d", random.nextInt(99999)));
fertigerEintrag.append("#");
// PLZ Ort
fertigerEintrag.append(plzort.get(random.nextInt(plzort.size())));
fertigerEintrag.append("#");
// Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500));
fertigerEintrag.append("#");
schreibeDatei.write(fertigerEintrag.toString());
schreibeDatei.newLine();
}
schreibeDatei.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void mitLeerzeichen(int anzahl) {
try {
String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "festeBreite.txt"));
Random random = new Random();
for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder();
// Kundennummer
fertigerEintrag.append(String.format("%06d", i));
// Nachname
fertigerEintrag.append(fuelleMitLeerzeichen(nachnamen, 20));
// Vorname
fertigerEintrag.append(fuelleMitLeerzeichen(vornamen, 20));
// Straße
fertigerEintrag.append(fuelleMitLeerzeichen(strassen, 20));
// Hausnummer
fertigerEintrag.append(String.format("%05d", random.nextInt(99999)));
// PLZ Ort
fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25));
// Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500));
schreibeDatei.write(fertigerEintrag.toString());
schreibeDatei.newLine();
}
schreibeDatei.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
} }