Erstes Zeichen aus String löschen

TimeIsTheKey

Aktives Mitglied
Hallo

Ich bin zurzeit an einem kleinen Projekt dran. Ich habe ein Textfile in dem meine Daten drinstehen und diese möchte ich alle einlesen und sortiert in ArrayListen speichern. Mein Problem ist das ich mir das so vorgestellt habe das vorne eine Zahl dran ist mit der man dann herausfindet was die entsprechende Zeile bedeutet. Hier ein Beispiel:

Code:
1Thema
2Unterthema
3Frage
3Frage
2Unterthema
3Frage
1Thema
2Unterthema

Die Zahlen benutze ich also im Klartext um herauszufinden was für ein String ich gerade vor mir habe. Mein Problem ist jetzt das ich nicht weiss wie ich die Zahl da wegbekomme, weil ich die nicht in der ArrayList speichern möchte. :autsch:
In Google finde ich nur wie ich das letzte Zeichen ändere (lenght()-1 ...), aber für das erste Zeichen finde ich nichts. Ich dachte da zuerst an die replace-Methode mit einer darauf folgenden trim-Methode, aber die geht in diesem Fall nicht, weil in einer Frage eine Zahl vorkommen kann und ich nicht möchte das die Zahlen aus der Frage verschwinden (z.B. mathematische Fragen oder auch Kapitelnamen). Ich hoffe ihr versteht mein Problem und könnt mir helfen :)

Edit: Mir fällt gerade auf das ich mich da durchmogeln könnte und eine Zeichenreihe nehme die 100%-ig nicht in einer meiner Fragen oder so auftaucht.

z.B. "^^~^^"
Code:
1^^~^^Thema
2^^~^^Unterthema
3^^~^^Frage
3^^~^^Frage
2^^~^^Unterthema
3^^~^^Frage
1^^~^^Thema
2^^~^^Unterthema

Ich könnte dann splitten, aber ich möchte das sauber lösen. Ist aber gut wenn ich da schonmal eine Notfalllösung parat habe ^^

MfG SurviveX
 
Zuletzt bearbeitet:

z-mon

Bekanntes Mitglied
Also wenn du nur das erste Zeichen eines Strings ignorieren möchtest könntest du mit einem substring(1) arbeiten ..!

Davon ab .. warum nutzt du keine Datenbank um deine Daten zu speichern?
 

XHelp

Top Contributor
Das Vorgehen ist fragwürdig. Da würde ich die Sachen als XML oder so abspeichern. Das erspart die viel Stress. Und Java-Intern würde ich eine Datenstruktur erstellen.
Zu deiner Frage:
Java:
while (s.length() > 0 && Character.isDigit(s.charAt(0))) {
  s = s.substring(1);
}
 

Andi_CH

Top Contributor
Edit: Mir fällt gerade auf das ich mich da durchmogeln könnte und eine Zeichenreihe nehme die 100%-ig nicht in einer meiner Fragen oder so auftaucht.

z.B. "^^~^^"
[snip]
Ich könnte dann splitten, aber ich möchte das sauber lösen. Ist aber gut wenn ich da schonmal eine Notfalllösung parat habe ^^
So lange du nur einzelne Ziffern hast, ist ja alles klar (substring....), aber wenn du zwei- oder mehrstellig werden musst, brauchst du einen anderen Ansatz. (Es könnte ja auch sein dass dein "echter" String mit einer Ziffer beginnt ...)

Warum nicht mit ' ' (space) oder ',' (so a la CSV) trennen und immer beim ersten Auftreten dieses Characters splitten?

Was ich nicht ganz verstehe ist, warum du das als "unsauber" bezeichnest? Ich finde einen definierten Charater als Separator sauberer als sich auf die Anzahl Ziffern zu verlassen.
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

wie zuvor schon angesprochen, hängt es IMHO vom möglichen Dateiinhalt ab!
Stehen am Anfang nur einstellige Zahlen oder können es auch mehrstellige sein?

Java:
// Index des ersten Zeichens, dass KEINE Ziffer ist!
int iIndex = 0;

for( int i = 0; i < s.length(); i++ )
{
    if( !Character.isDigit(s.charAt(i) )
    { 
        iIndex = i;       
        break;
    }
}

s = s.substring( iIndex );

Kann wirklich der Textteil mit einer Ziffer beginnen?
Dann wird es deutlich aufwendiger ....

Gruß
Klaus
 

Andi_CH

Top Contributor
Ich neige dazu, alles möglichst allgemein zu lösen ;-) wobei logischerweise nicht immer der kompakteste Code entsteht ....

Äh ist übrigens bald Weihnachten - soll ich dir eine Signatur schenken? :)
 

TimeIsTheKey

Aktives Mitglied
Zunächst vielen Dank für die zahlreichen Antworten! Ich hätte nicht gedacht das so viele posten würden. :)

Also wenn du nur das erste Zeichen eines Strings ignorieren möchtest könntest du mit einem substring(1) arbeiten ..!

Davon ab .. warum nutzt du keine Datenbank um deine Daten zu speichern?

Vielen Dank! Genau das suchte ich ^^ Jedem dem ich von meinem kleinen Mini-Java-Programm erzähle fragt mich wieso ich keine DB benutze. Das Programm soll als .zip-Datei verschickt werden können und sozusagen transportabel sein. Ich möchte nicht irgendetwas installieren oder so damit mein Programm läuft.

Das Vorgehen ist fragwürdig. Da würde ich die Sachen als XML oder so abspeichern. Das erspart die viel Stress. Und Java-Intern würde ich eine Datenstruktur erstellen.
Zu deiner Frage:
Java:
while (s.length() > 0 && Character.isDigit(s.charAt(0))) {
  s = s.substring(1);
}

Das Vorgehen ist durchaus fragwürdig, aber ich habe noch nicht sehr viel Erfahrung mit Java und finde es eigentlich noch ziemlich okay, weil Textdateien nicht so grosse Ressourcenfresser sind. Kann man in XML wirklich ein Array haben? Wo ist da der Vorteil gegenüber einem Textfile?

So lange du nur einzelne Ziffern hast, ist ja alles klar (substring....), aber wenn du zwei- oder mehrstellig werden musst, brauchst du einen anderen Ansatz. (Es könnte ja auch sein dass dein "echter" String mit einer Ziffer beginnt ...)

Warum nicht mit ' ' (space) oder ',' (so a la CSV) trennen und immer beim ersten Auftreten dieses Characters splitten?

Was ich nicht ganz verstehe ist, warum du das als "unsauber" bezeichnest? Ich finde einen definierten Charater als Separator sauberer als sich auf die Anzahl Ziffern zu verlassen.

Die Problematik taucht zum Glück nicht auf da ich nur einstellige Zahlen benutze. Ich würde es unsauber gelöst finden wenn ich mittels spezieller Characters splitten würde, weil dies mehr Ressourcen verbrauchen würde (mehr Methoden, String Array etc.) im Gegensatz zum substring. Natürlich bezeichnete ich dies nur als unsauber, weil ich vermutet hatte das sich dies mittels einer einfachen Methode lösen lässt. ^^"

Moin,

wie zuvor schon angesprochen, hängt es IMHO vom möglichen Dateiinhalt ab!
Stehen am Anfang nur einstellige Zahlen oder können es auch mehrstellige sein?

Java:
// Index des ersten Zeichens, dass KEINE Ziffer ist!
int iIndex = 0;

for( int i = 0; i < s.length(); i++ )
{
    if( !Character.isDigit(s.charAt(i) )
    { 
        iIndex = i;       
        break;
    }
}

s = s.substring( iIndex );

Kann wirklich der Textteil mit einer Ziffer beginnen?
Dann wird es deutlich aufwendiger ....

Gruß
Klaus

Zum Glück trifft das mit den mehrstelligen Zahlen nicht zu. ^^

Vielen Dank für euren Support :toll:
 

z-mon

Bekanntes Mitglied
Vielen Dank! Genau das suchte ich ^^ Jedem dem ich von meinem kleinen Mini-Java-Programm erzähle fragt mich wieso ich keine DB benutze. Das Programm soll als .zip-Datei verschickt werden können und sozusagen transportabel sein. Ich möchte nicht irgendetwas installieren oder so damit mein Programm läuft.

Für diesen Fall gibt es auch eine HSQLDB. Ist ein embedded Datenbanksystem was ohne weiteres portablefähig ist ^^

im Java HSQLDB (HyperSQL) Tutorial findest du eine konkrete Vorgehensweise.

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erstes Zeichen in einem String in Großbuchstaben wandeln Java Basics - Anfänger-Themen 3
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
G Feststellen, ob erstes Zeichen eines Strings eine Ziffer ist Java Basics - Anfänger-Themen 11
G erstes Zeichen eines Strings herausfinden Java Basics - Anfänger-Themen 3
M erstes Zeichen ersetzen Java Basics - Anfänger-Themen 2
O mit Regex erstes Zeichen überprüfen Java Basics - Anfänger-Themen 3
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
X Array erstes und letztes Element tauschen Java Basics - Anfänger-Themen 2
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines chars entfernen Java Basics - Anfänger-Themen 1
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
H java erstes projekt Java Basics - Anfänger-Themen 502
M OOP Mein erstes Textadventure... Java Basics - Anfänger-Themen 3
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
D Auswahl und Ausgabe erstes Programm Java Basics - Anfänger-Themen 8
M Mein erstes Programm Java Basics - Anfänger-Themen 3
V Erste Schritte Erstes Project - Hilfe Java Basics - Anfänger-Themen 9
T erstes kleines Programm Java Basics - Anfänger-Themen 17
M Erste Schritte Erstes Programm mit Compiler öffnen Java Basics - Anfänger-Themen 4
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
E Erstes "kleines" Programm Java Basics - Anfänger-Themen 5
M Erstes Textrollenspiel funktioniert...nicht. Java Basics - Anfänger-Themen 2
L Erstes Projekt aus zwei Projekten Java Basics - Anfänger-Themen 1
T mein erstes Java projekt Java Basics - Anfänger-Themen 8
1 Mein erstes Programm, HELP!! Java Basics - Anfänger-Themen 2
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
A Erstes Programm: Polynom-Klasse Java Basics - Anfänger-Themen 15
B Erstes Element eines Vectors erhalten Java Basics - Anfänger-Themen 5
D Mein erstes Programm flackert Java Basics - Anfänger-Themen 5
W Erste Schritte erstes Programm Java Basics - Anfänger-Themen 40
I Liste Remove erstes Element Java Basics - Anfänger-Themen 5
W Erstes eigens Programm - Klassen- und Schüler Verwaltungsprogramm Java Basics - Anfänger-Themen 5
M Erstes "sinnvolles" Programm Java Basics - Anfänger-Themen 11
A Erstes Programm - Problem beim Ausführen als jar Java Basics - Anfänger-Themen 3
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
J Bald erstes Java Buch durchgearbeitet - Wie gehts nun weiter? Java Basics - Anfänger-Themen 6
R [CODECHECK] Erstes Programm Java Basics - Anfänger-Themen 6
J erstes Prog./Klasse - Konstruktur/Objekterstellung funktioniert nicht Java Basics - Anfänger-Themen 25
M Erstes Programm und Fehlermeldung Java Basics - Anfänger-Themen 5
B erstes Java-Applet Java Basics - Anfänger-Themen 7
M Sammlung von Anfängerfragen für mein erstes Programm Java Basics - Anfänger-Themen 15
C Erstes Arraylist Element in for Schleife überspringen Java Basics - Anfänger-Themen 6
G Erstes Java-Programm Java Basics - Anfänger-Themen 10
E Erstes Programm - Problem mit Exception Java Basics - Anfänger-Themen 3
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
A erstes größeres Projekt Java Basics - Anfänger-Themen 14
P Mein erstes JAR-File Java Basics - Anfänger-Themen 8
G erstes element einer haspmap Java Basics - Anfänger-Themen 5
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
G erstes Arbeiten mit Packages Java Basics - Anfänger-Themen 2
T Erstes RPG: KeyAdapter Problem Java Basics - Anfänger-Themen 3
C Konstruktor wird nicht als erstes aufgerufen! Java Basics - Anfänger-Themen 11
L Suche Verbesserungsvorschläge für mein erstes Programm Java Basics - Anfänger-Themen 34
Bierhumpen mein erstes großes Programm. Was ändern? verbessern? Java Basics - Anfänger-Themen 12
A Mein erstes Programm Java Basics - Anfänger-Themen 6
D JNDI-DataSource erstes mal benutzen Java Basics - Anfänger-Themen 4
T Erstes Programm Java Basics - Anfänger-Themen 7
B Erstes Programm :-/ Java Basics - Anfänger-Themen 3
C Erstes kleines Problem - string in chat ? Java Basics - Anfänger-Themen 9
M Erstes Element einer Enumeration? Java Basics - Anfänger-Themen 6
A Erstes Buch durchgelesen, wie weiter vorgehen? Java Basics - Anfänger-Themen 8
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
T or zeichen Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
S Arrayausgabe und nur einmal ein Zeichen davor Java Basics - Anfänger-Themen 12
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 17
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
H Fehlerausgabe (Ungewollte Zeichen) Java Basics - Anfänger-Themen 1
R Komische Zeichen in Java Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
J Vorkommen von Zeichen Java Basics - Anfänger-Themen 44
H Verschiebung von Zeichen Java Basics - Anfänger-Themen 18
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben