String in int konvertieren

Status
Nicht offen für weitere Antworten.
B

Booty

Gast
Hallo,
Ich versuche mich gerade daran einen String in einzelne int-werte zu konvertieren, jedoch komme ich nicht so recht weiter.
Was passieren soll, ist, dass ein Datum in der Form TT.MM.JJJJ also zB 31.01.2007 eingegeben werden soll und der dazugehörige Wochentag ausgegeben werden soll. Die Berechnung des Tages steht alles. Wenn ich die werte von Tag Monat und Jahr einzeln eingebe und direkt als int-werte speichere klappt auch alles. ich scheitere nur daran, dass die Eingabe des Datums komplett in einem Schritt erfolgt und die TT, MM und JJJJ Werte in int-werte konvertiert werden.
Folgendes ist mein Lösungansatz:

Code:
String TT = "TT";
String MM = "MM";
String JJJJ = "JJJJ";
	String Datum = IOTools.readString("Bitte geben sie ein gueltiges Datum in der Form "+TT+"."+MM+"."+JJJJ+"ein:");
	
	int rTag = Integer.parseInt(String TT);
	int rMonat = Integer.parseInt(String MM);
	int rJahr = Integer.parseInt(String JJJJ);

Wenn ihr mir auf die Spünge helfen könnten wär das klasse,
MfG
Booty
 

nocxsville

Bekanntes Mitglied
Code:
final String eingabe = [...]  // eingabe ist der von der console eingelesene String im Format TT.MM.JJJJ

final int rTag = Integer.parseInt(eingabe.substring(0, 2));

ggf. nochmal den Start- und Endindex überprüfen. Das gleich musst du dann für den Monat bzw. Jahr tun.

P.S.: falls ungültige Zeichen eingegeben wurden (Buchstaben) wird eine NumberFormatException geworfen, die sollte man auch abfangen.

Gruß,
nocxsville.
 

FatFire

Bekanntes Mitglied
Hmpf, ich glaube, ich muß mal meine Signatur ändern...schon das zweite Mal, daß ich jetzt Code poste...
Code:
String eingabe = //halt das Datum, welches Du brauchst
String teil = eingabe.substring(0 , eingabe.indexOf("."));
int tag = Integer.parseInt(teil);
eingabe = eingabe.substring(eingabe.indexOf(".") + 1);
teil = eingabe.substring(0 , eingabe.indexOf("."));
int monat = Integer.parseInt(teil);
int jahr = Integer.parseInt(eingabe.substring(eingabe.indexOf(".") + 1));

Also, erstens ist das jetzt so komplett, hast jetzt das Ergebnis in den Variablen tag, monat, jahr liegen und damit bist Du auch auf der sicheren Seite, falls irgendein Scherzkeks halt nicht 01.02.2007 eingibt, sondern 1.2.2007 (hmmm...so abwegig ist das gar nicht)...
 
B

Booty

Gast
Hallo ihr zwei.
Erstmal ein großes Dankeschön an euch beide für eure Hilfe. Hat mir schon sehr geholfen!
Ich poste euch jetzt nochmal meinen Code, denn es gibt da noch ein kleines Problem:
Code:
  public static void main(String[] args) {
String TT = "TT";
String MM = "MM";
String JJJJ = "JJJJ";
	String Datum = IOTools.readString("Bitte geben sie ein gueltiges Datum in der Form "+TT+"."+MM+"."+JJJJ+" ein:");
	String teil = Datum.substring(0 , Datum.indexOf(".")); 
	
	int rTag = Integer.parseInt(teil); 
Datum = Datum.substring(Datum.indexOf(".") + 1); 
teil = Datum.substring(0 , Datum.indexOf(".")); 
int rMonat = Integer.parseInt(teil); 
int rJahr = Integer.parseInt(Datum.substring(Datum.indexOf(".") + 1));

	
    Tag tag = new Tag(rTag, rMonat, rJahr);
 
	System.out.println ("Der " +rTag+"."+rMonat+"."+rJahr+ " ist ein " +tag.getWochentag());

Das Problem was noch besteht ist, dass er keine Daten der Form 1.2.2007 (also ohne die Nullen) akzeptieren soll.^^
Dafür müsste ich dann noch eine exception schreiben...aber wie veranker ich das in dem Code, dass er die Daten ohne die Nullen garnicht erst akzeptier?

MfG Booty
 

Leroy42

Top Contributor
Am einfachsten, indem du die Länge prüfst:
Code:
"1.2.2007".length() == 8
Code:
"01.02.2007".length() == 10
 

Marco13

Top Contributor
For every difficult problem, there is a solution that ist simple, elegant .... and wrong. [Woher auch immer dieses Zitat stammt]

Ein Prüfen der Länge in dieser Form bringt erstmal nicht viel
"123.1.2007".length() == 10
"laaliiluuu".length() == 10
...

Eigentlich verwendet man zum parsen eines Datums ein DateFormat
http://java.sun.com/j2se/1.4.2/docs/api/java/text/DateFormat.html
denn dafür ist das da.

Aber wenn du das durch ein Zerlegen des Strings machen willst, um auf bestimmte Sachen "leichter" Einfluß nehmen oder genauer reagieren zu können, solltest du (zumindest) die Einzelteile der Strings prüfen (d.h. überprüfe, ob der Tag- und Monats-String-Teil die Länge 2 und der Jahres-String die Länge 4 haben).

Es gibt dann aber immernoch viel, was schiefgehen kann. Geh' einfach mal davon aus, dass der Benutzer deines Programms ein Zufallsgenerator ist (und viele Benutzer SIND Zufallsgeneratoren)) und du immer richtig reagieren mußt, egal, welche Eingabe dort kommt....
 

Leroy42

Top Contributor
Marco13 hat gesagt.:
Ein Prüfen der Länge in dieser Form bringt erstmal nicht viel
"123.1.2007".length() == 10
"laaliiluuu".length() == 10

Du hast den Thread wahrscheinlich nicht genau gelesen.

Booty parst schon die entsprechenden Teilstrings, so daß deine
beiden Beispiele schon beim Parsen als faule Eier erkannt würden.

Die Längenabfrage ist nur als zusätzlicher Test (nach Boot's Nachfrage) zu verstehen.

Dessen ungeachtet gebe ich dir natürlich vollkommen recht:
Anstatt selbst rumzuwuseln würde ich natürlich auch gleich
auf DateFormat zurückgreifen.

==> nocxsville hat den Thread in die falsche Richtung getrieben. :bae:
 

Marco13

Top Contributor
@Leroy42: Ich habe den Thread gestern Abend (->müde) überflogen, aber in bezug auf das letzte, was Booty gepostet hat:
Code:
   String teil = Datum.substring(0 , Datum.indexOf("."));
   int rTag = Integer.parseInt(teil);
dort wird zwar ein "teil" geparst, aber eine Überprüfung, ob z.B.
Datum.indexOf(".") == -1
teil.equals("murks") // (NumberFormatException)
rTag > 31
oder so gilt, wird dort bisher nicht gemacht (obwohl nocxsville zumindest auf die ersten beiden schon hingewiesen hatte!)

Ob das mit dem DateFormat immer funktioniert, weiß ich aber gerade nicht: Wenn man sicherstellen will, dass einstellige Zahlen mit einer führenden "0" beginnen, könnte das mit einem DateFormat u.U. komplizierter sein, als wenn man von Hand parst :roll: (müßte man mal genauer nachsehen).
 
B

Booty

Gast
Rehi,
Danke euch nochmal für die rege Beteiligung eurerseits.
Bin jetzt fertig mit dem Programm und alles tut das was es soll :)
Cya soon,
Booty
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
P String zu int konvertieren nur mit charAt Java Basics - Anfänger-Themen 8
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
L Konvertieren von String zu double?! Java Basics - Anfänger-Themen 6
MiMa String nach float Konvertieren Java Basics - Anfänger-Themen 23
E Datentypen C# String zu Java String konvertieren Java Basics - Anfänger-Themen 3
D Enumeration in String konvertieren und ausgeben Java Basics - Anfänger-Themen 1
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
G String Array konvertieren in Integer Array? Java Basics - Anfänger-Themen 7
A int in String konvertieren Java Basics - Anfänger-Themen 4
T Fehler beim Konvertieren (String --> Float) Java Basics - Anfänger-Themen 5
H String in anderen zeichensatz Konvertieren? Java Basics - Anfänger-Themen 6
turmaline String zu Date konvertieren -> Unparseable date Java Basics - Anfänger-Themen 5
C Datentypen int[][]-Array nach String[][]-Array konvertieren Java Basics - Anfänger-Themen 7
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
H Hilfe String in lowercase konvertieren ohne api Java Basics - Anfänger-Themen 4
N String in Double konvertieren? Java Basics - Anfänger-Themen 9
K String von z.B. "\u003C" in Char konvertieren Java Basics - Anfänger-Themen 7
Z Wie Byte[] in einen String oder int konvertieren Java Basics - Anfänger-Themen 2
U von String auf int konvertieren Java Basics - Anfänger-Themen 7
G String in Date konvertieren Java Basics - Anfänger-Themen 6
S String in Datum und wieder in String konvertieren Java Basics - Anfänger-Themen 3
B String in Byte konvertieren Java Basics - Anfänger-Themen 19
M Int nach String konvertieren? Java Basics - Anfänger-Themen 11
F Boolescher Ausdruck (String) in boolean konvertieren Java Basics - Anfänger-Themen 5
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
L String in Array konvertieren Java Basics - Anfänger-Themen 5
S String in ein int wert konvertieren Java Basics - Anfänger-Themen 3
G String in double konvertieren Java Basics - Anfänger-Themen 12
H Konvertieren von String nach int Java Basics - Anfänger-Themen 9
P String zu int konvertieren ? Java Basics - Anfänger-Themen 10
F String in Byte[] konvertieren Java Basics - Anfänger-Themen 2
M String in Integer konvertieren Java Basics - Anfänger-Themen 4
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
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
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben