Variablenfelder (4)
Wie man Strings auseinandernimmt und zusammensetzt
Manche Datenverwaltungsprogramme speichern einfach jeden Datensatz als String. Solche Strings müssen, bevor sie verwendet werden in Felder zerlegt werden. Neue Datensätze müssen zu einem String mit festem Aufbau zusammengesetzt werden
import java.util.*;
public class Strings {
public static void main(String[] args) {
Scanner Eingabe = new Scanner(System.in);
System.out.println("Stringoperationen\n");
System.out.println("Ein Beispieldatensatz:\n");
String posi = "012345678901234567890123456789012345678901234567890123456789";
String feld = "Vorname Name sGebdat Abt Gehalt ";
String data = "Volker Mustermann m1975-08-03 17 3821.65 ";
System.out.println(data);
// Im Folgenden wird dieser Datensatz zerlegt
String vorname = data.substring(0,15);
String nachname = data.substring(15,30);
char sex = data.charAt(30);
String gebdat = data.substring(31,41);
int abteilung = Integer.parseInt(data.substring(42,46).trim());
float gehalt = Float.parseFloat(data.substring(46,56).trim());
// Das Datum wird computergerecht aufbereitet
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(data.substring(31,35)),
Integer.parseInt(data.substring(36,38))-1,
Integer.parseInt(data.substring(39,41)));
System.out.println();
System.out.println("Vorname : "+vorname);
System.out.println("Nachname : "+nachname);
System.out.println("Geschlecht : "+sex);
System.out.println("Geburtsdatum : "+gebdat+" bzw: "+cal.getTime());
System.out.println("Abteilung : "+abteilung);
System.out.println("Gehalt : "+gehalt);
System.out.println();
System.out.println("Geben Sie einen neuen Datensatz ein:");
System.out.println();
System.out.print("Vorname? : ");
vorname=Eingabe.next();
System.out.print("Nachname? : ");
nachname=Eingabe.next();
System.out.print("Geschlecht? m/w : ");
sex=Eingabe.next().charAt(0);;
System.out.print("Gebtag? ttmmjjjj : ");
gebdat=Eingabe.next();
gebdat=gebdat.substring(4,8)+"-"+gebdat.substring(2,4)+"-"+gebdat.substring(0,2);
System.out.print("Gehalt? (Komma!) : ");
gehalt=Eingabe.nextFloat();
System.out.print("Abteilung? : ");
abteilung=Eingabe.nextInt();
// Über die Format-Methode werden Strings und Zahlen
// auf feste Länge gebracht und zusammengefügt.
data=String.format("%-15s%-15s%1s%10s%4d%10.2f",vorname,nachname,sex,gebdat,abteilung,gehalt);
System.out.println();
System.out.println("Zusammengesetzt:");
System.out.println(feld);
System.out.println(data);
}
}
Aufgaben: