• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

java cast string to int

Mitglied seit
15.03.2002
Beiträge
400
Reaktionen
0
ich habe einen string mit dem Inhalt "3.150"
der punkt dient aber nur zur besseren lesbarkeit der Zahl. Der eigentliche Wert beträgt also 3150. Wie caste ich diesen string nun zu einem integer??
parse.double(string) funktioniert, aber dann ist der wert natürlich 3,15 und nicht 3150....
vielen dank im vorraus!
 
Mitglied seit
12.08.2002
Beiträge
12.549
Reaktionen
0
ka ob es sowas in java gibt, aber in vb.net ginge es so:
strEingabe = Replace(strEingabe, ".", "")

bzw. in j# die methode replace kann sicher ähnliches.
 

killerchicken_inaktiv

Guest
recht easy:
Code:
		int test = 0;
		String s = "1.23";
		s = s.replace( ".", "");
		try {
			test = Integer.parseInt( s );
		}
		catch( NumberFormatException ex ) {
			System.out.println("\"" + ex.getMessage() +  "\" is not numeric");
			System.exit(1);
		}
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Alternativ zu parseInt geht auch:
Code:
test = Interger.valueOf(s);
Das mit regular expressions zu machen ist etwas oversized, finde ich.
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
hm einfach alles rauskiggen was nicht 0-9 beliebig kombiniert ist

so ausm kopp:

^{[0-9]*} mit "" ersetzen ^^
 

Busta_inaktiv

Guest
Da genügend Lösungen vorgeschlagen wurden erlaube mir die kleine Kritik, dass es kaum sinnvoll sein kann (Ganz-)Zahlen nur der besseren Ausgabemöglichkeit halber als Strings zu speichern. Die Standard-Api stellt genügend alternative Möglichkeiten zur Verfügung, guck dich mal bei DecimalFormat oder NumberFormat um.
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
das geht btw sicher auch mit eingebauten hilfsmittel. in c# wuerde es iirc z.b. mit double.Parse() mit amerikanischer cultureinfo und zahlengruppierung gehen. sowas kann java sicher auch.
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Original geschrieben von ViperDK
das geht btw sicher auch mit eingebauten hilfsmittel. in c# wuerde es iirc z.b. mit double.Parse() mit amerikanischer cultureinfo und zahlengruppierung gehen. sowas kann java sicher auch.

Ist ja nicht so, dass das noch keiner gesagt hätte...
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.590
Reaktionen
10.238
Original geschrieben von cart

Das mit regular expressions zu machen ist etwas oversized, finde ich.
Der einzige Grund, soetwas mit RegEx zu machen wäre, RegEx zu lernen. Ansonsten sollte man davon die finger lassen, und das solange bis man genau weiß ab wann das Kram performant ist. Sonst heissts gleich wieder Java ist langsam - das nur als Ergänzung.
 

The_Company

Guest
Original geschrieben von Busta
Da genügend Lösungen vorgeschlagen wurden erlaube mir die kleine Kritik, dass es kaum sinnvoll sein kann (Ganz-)Zahlen nur der besseren Ausgabemöglichkeit halber als Strings zu speichern. Die Standard-Api stellt genügend alternative Möglichkeiten zur Verfügung, guck dich mal bei DecimalFormat oder NumberFormat um.
Eventuell baut er sich gerade nen CSV Importer oder sowas ähnliches?
 

Busta_inaktiv

Guest
Falls die Daten textonly vorliegen ist mein e Kritik natürlich gegenstandslos
 

voelkerballtier

Coverage, Staff, Coding
Mitglied seit
01.12.2003
Beiträge
1.603
Reaktionen
0
Original geschrieben von cart


das geht btw sicher auch mit eingebauten hilfsmittel. in c# wuerde es iirc z.b. mit double.Parse() mit amerikanischer cultureinfo und zahlengruppierung gehen. sowas kann java sicher auch.

Ist ja nicht so, dass das noch keiner gesagt hätte...

nein, das hatte tatsächlich noch niemand gesagt und es könnte durchaus die eleganteste lösung sein (je nachdem woher die zahl kommt und was sie bedeutet)
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Na dann schau dir doch nochmal an, was kc und ich oben gepostet hatten...
 

killerchicken_inaktiv

Guest
na, mal ganz ruhig jetzt ;)

ich denke voelkerballtier meint etwas anderes als du und ich geschrieben haben, naemlich, dass man den Int ueberhaupt nicht als String speichern muss, sondern den mit Formattern ganz einfach auch so hinbekommt... Inwiefern das kompatibel mit der Fragestellung ist, muss der Threadersteller eben beantworten.

Gruss
Sebastian
 

Bronzegraf

Guest
Habe gerade mal selber probiert was in Java so geht:
Code:
NumberFormat nf= NumberFormat.getIntegerInstance();
String numberString= "1.234.567";
Number number= nf.parse(numberString);
Das liefert ein Long mit dem Wert 1234567. Sollte also Deinen Ansprüchen genügen ;)
 

killerchicken_inaktiv

Guest
Ausser, er braucht ne Moeglichkeit, um zu entdecken dass zB. 12.234,23 nicht gleich 1223423 ist, sondern eher (gerundet) 12234.
 
Oben