Stringhandling

Status
Nicht offen für weitere Antworten.

deshwar

Neues Mitglied
Hallo zusammen,

irgendwie hab ich den Eindruck will Java mich nicht :(

Ich habe bis jetzt immer in Delphi oder C programmiert. Nu ist aber Java in aller Munde und ich möchte mich etwas einarbeiten. Aber die Struktur von Java, obwohl syntaktisch so nah an C, will sich mir nicht erschließen :(:(:(

Folgendes Problem muss ich lösen: ich bekomme einen String. Diesem String möchte ich das heutige Datum voranstellen ( mit welcher Funktion mach ich das?). Dann soll der String an ein Array angehämgt werden. Danach soll das Array sortiert werden ( absteigend ). Später muss ich dann das Datum wieder ausschneiden und der ursprüngliche String soll wieder da sein.

Bei mir hapert es daran, dass ich die entsprechenden Funktionen bzw. Methoden nicht finde. Hat ein Array grunsätzlich eine Sort() Methode? Muss ich die Vergleichsroutinen extern Programmieren ( wie bei C Quicksort ) ?????

H i l f e !!! bitte
 

mic_checker

Top Contributor
Du hast verschiedene Möglichkeiten um nen String an nen andern anzuhängen, du kannst z.B. mit nem StringBuffer append(...) aufrufen.

Eine einfache Möglichkeit, die aber letztendlich intern von der ersten Gebrauch macht ist die Verwendung von "+" als Konkatenationsoperator.

Du hast ein Array - möchtest du nun die einzelnen Buchstaben als neue Elemente anhängen ?

Code:
String[] first = {"a","b","c"};

String second = "hallo";
Nachdem du second angehangen hast , steht da:

first[0] = a
first[1] = b
....
first[6] = l
first[7] = o

Oder was willst du machen?

Um Arrays zu sortieren kannst du Arrays.sort verwenden
 

Eminent

Bekanntes Mitglied
deshwar hat gesagt.:
Hallo zusammen,

irgendwie hab ich den Eindruck will Java mich nicht :(

Ich habe bis jetzt immer in Delphi oder C programmiert. Nu ist aber Java in aller Munde und ich möchte mich etwas einarbeiten. Aber die Struktur von Java, obwohl syntaktisch so nah an C, will sich mir nicht erschließen :(:(:(

Folgendes Problem muss ich lösen: ich bekomme einen String. Diesem String möchte ich das heutige Datum voranstellen ( mit welcher Funktion mach ich das?). Dann soll der String an ein Array angehämgt werden. Danach soll das Array sortiert werden ( absteigend ). Später muss ich dann das Datum wieder ausschneiden und der ursprüngliche String soll wieder da sein.

Bei mir hapert es daran, dass ich die entsprechenden Funktionen bzw. Methoden nicht finde. Hat ein Array grunsätzlich eine Sort() Methode? Muss ich die Vergleichsroutinen extern Programmieren ( wie bei C Quicksort ) ?????

H i l f e !!! bitte

Also das aktuelle Datum bekommst du in Java mit Hilfe von Date oder GregorianCalendar, ist nicht schwer kannste einfach mal ausprobieren.

Wie man das Datum dann einem String voranstellt kriegst du selber hin denke ich.

Einfach wäre es z. B. so:

Code:
String a = "20050505" + a;

So ist es nicht 100%ig sauber, aber geht am schnellsten. Du kannst auch einen StringBuffer machen und das ganze dann anhängen.

Das sortieren von Arrays sollte rechte einfach gehen mit Arrays.sort(....).
 

Campino

Top Contributor
a) http://java.sun.com/j2se/1.5.0/docs/api
b)
Code:
String[] array=String[100]; //Array mit hundert Feldern

String string="dein String";
Date d=new date(); //aktuelles Datum
String datum=d.getDay()+d.getMonth()+d.getYear(); //datum in der Form DDMMYYYY
String zusammengesetzt=datum+string;

array[0]=zusammengesetzt;

c) Array hat vermutlich keine Methode sort(), man müsste ja irgendwie angeben wonach sortiert wird. Nimm doch Vector, den kannst du mit Comparator sortieren. Mach dazu nen API-Guck.
 

Bleiglanz

Gesperrter Benutzer
Folgendes Problem muss ich lösen: ich bekomme einen String. Diesem String möchte ich das heutige Datum voranstellen ( mit welcher Funktion mach ich das?). Dann soll der String an ein Array angehämgt werden. Danach soll das Array sortiert werden ( absteigend ). Später muss ich dann das Datum wieder ausschneiden und der ursprüngliche String soll wieder da sein.
schildere lieber mal das ursprüngliche Problem

das klingt komisch...willst du irgendwas nach datum sortieren?
 

deshwar

Neues Mitglied
Langsam lichtet sich das Dunkel. Danke schonmal allen, die geantwortet haben. Hier, wie gewünscht, eine genauere Beschreibung.

Ich bekomme täglich eine Datei, die aus drei Spalten besteht. "Datum", "Titel" und "Information". Aus dieser Datei sind nun bestimmte Zeilen heraus zu filtern. Und die "Information" soll in einer anderen Datei gespeichert werden. Soweit komm ich grad noch :)

Jetzt wirds tricky, zumindest für mich als Java Anfänger. Zu einem späteren Zeitpunkt sollen die gefilterten Daten wieder gelesen werden und CHRONOLOGISCH ausgegeben werden. ( Die Strings mit Datum kommen nämlich gemeinerweise NICHT chronologisch )

Meine Idee war nun, beim Speichern der "Information" das Datum vor den String zu setzen und dann zu speichern ( so ist es ja in einer der Antworten auch schon vorgeschlagen worden ). Wenn die Datei dann gelesen wird, sollen alle Strings in eine Liste, ein Array oder eine andere geeignete Struktur geschrieben werden, dort dann sortiert und erst dann ausgegeben werden.

In C# ist das ganz simpel. In Java bestimmt auch, wenn man weiß, wie es geht :) :)
 

Bleiglanz

Gesperrter Benutzer
schau dir mal java.util.TreeMap an

als key das Datum

als Wert den String aus Titel und Information

...
 

Solour

Aktives Mitglied
generell hört sich das nach was an wo du eher keinen array sondern sowas wie nen Vector<String> brauchst...
also ma Vector suchen..

weil array dann eben doch ne feste größe hat und nen vector das einem wenigstens abnimmt
 

Eminent

Bekanntes Mitglied
Campino hat gesagt.:
a) http://java.sun.com/j2se/1.5.0/docs/api
b)
Code:
String[] array=String[100]; //Array mit hundert Feldern

String string="dein String";
Date d=new date(); //aktuelles Datum
String datum=d.getDay()+d.getMonth()+d.getYear(); //datum in der Form DDMMYYYY
String zusammengesetzt=datum+string;

array[0]=zusammengesetzt;

c) Array hat vermutlich keine Methode sort(), man müsste ja irgendwie angeben wonach sortiert wird. Nimm doch Vector, den kannst du mit Comparator sortieren. Mach dazu nen API-Guck.

Array an sich hat keine SortMethode aber Arrays besitzt statische sort-Methoden, denen man dann z. B.
Object[] übergeben kann. Wie genau die Sortierung dann arbeitet weiß ich nicht, habs bisher noch nicht
genauer geschaut.

Ich muss allerdings zustimmen, dass an sich auch eher Vector nehmen würde, das hab ich schon mal gemacht
und das funktioniert auch ganz gut.
 
B

bygones

Gast
Eminent hat gesagt.:
Array an sich hat keine SortMethode aber Arrays besitzt statische sort-Methoden, denen man dann z. B.
Object[] übergeben kann. Wie genau die Sortierung dann arbeitet weiß ich nicht, habs bisher noch nicht
genauer geschaut.

Ich muss allerdings zustimmen, dass an sich auch eher Vector nehmen würde, das hab ich schon mal gemacht
und das funktioniert auch ganz gut.
Arrays.sort kann jeden Objekt Array sortieren. dessen Objekte das Interface Comparable implementieren bzw man kann der Methode einen eigenen Comparator uebergeben.

Vom Prinzip heisst dass, deine Objekte muessen eine natuerliche Ordnung haben (wenn du mit Java eigenen Klassen arbeitest, z.b. String so ist dies gewaehrleistet).

Array ist ansich schon in Ordnung, wenn du die Anzahl der Elemente die zu bearbeiten sind kennst und diese sich nicht aendert. Trifft beides nicht zu, so ist eine Collection zu nehmen - wobei ich im Normalfall NICHT zum Vector, sondern zur ArrayList rate (siehe FAQs)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben