Java-Forum.org  
Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen: String in int konvertieren

Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 01.02.2007, 18:53   #1
 
String in int konvertieren - Standard String in int konvertieren

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
 
Alt 01.02.2007, 18:58   #2
nocxsville
 
String in int konvertieren - Standard AW: String in int konvertieren

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.
 
Alt 01.02.2007, 20:09   #3
FatFire
 
String in int konvertieren - Standard AW: String in int konvertieren

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)...
 
Alt 02.02.2007, 15:27   #4
 
String in int konvertieren - Standard AW: String in int konvertieren

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
 
Alt 02.02.2007, 15:38   #5
Leroy42
 
String in int konvertieren - Standard AW: String in int konvertieren

Am einfachsten, indem du die Länge prüfst:
Code:
"1.2.2007".length() == 8
Code:
"01.02.2007".length() == 10
 
Alt 02.02.2007, 19:22   #6
Marco13
 
String in int konvertieren - Standard AW: String in int konvertieren

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/...ateFormat.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....
 
Alt 03.02.2007, 10:30   #7
Leroy42
 
String in int konvertieren - Standard AW: String in int konvertieren

Zitat: Marco13
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.
 
Alt 03.02.2007, 12:09   #8
FatFire
 
String in int konvertieren - Standard AW: String in int konvertieren

Und ich hab ja auch noch fleissig mitgetrieben
 
Alt 03.02.2007, 12:50   #9
Marco13
 
String in int konvertieren - Standard AW: String in int konvertieren

@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 (müßte man mal genauer nachsehen).
 
Alt 04.02.2007, 19:17   #10
 
String in int konvertieren - Standard AW: String in int konvertieren

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
 
Thema geschlossen    

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen: String in int konvertieren
String in byte konvertieren, wie?
String in byte konvertieren, wie?: Hallo zusammen Ich habe byte in String , wie...
int in String konvertieren
int in String konvertieren: Hallo Leute ich habe ein kleines Programm...
von String auf int konvertieren
von String auf int konvertieren: Hallo hab ein kleines problem und zwar ich würde...
String in Datum und wieder in String konvertieren
String in Datum und wieder in String konvertieren: Hallo, also es ist mir durchaus bewusst, dass...
String zu int konvertieren ?
String zu int konvertieren ?: hallo gruppe, wenn ich einen String...




Sie betrachten gerade String in int konvertieren