Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
habe einen Fehler bzw. ein Problem wo ich nicht weiterkomme. Vielleicht kann mir ja jemand helfen.
Ich will einen String einlesen z.B. 3456 und als Ergebniss den kompletten Integer erhalten, d.h. einen Integer 3456 .. diesen will ich dann mit 2 multiplizieren und es soll 6512 rauskommen..
Will es nur mit Schleifen bzw Abfragen machen .. Also nicht parseInt verwende und keine Arrays. Vielleicht kann mir hier ja jemand helfen.
Code:
import AlgoTools.IO;
public class StringtoInt {
public static void main(String[] args) {
//ergebnis deklarieren & initalisieren
int ergebnis = 0;
//einlesen
String zeichen = IO.readString("Geben Sie einen Text ein: ");
int d =Integer.parseInt(zeichen);
d = d*2;
IO.println(d);
//von hinten nach vorne
for ( int pos = 0 ; pos <= zeichen.length() - 1 ; pos = pos+1 )
//in integer umwandeln
{ int zahl = (int) zeichen.charAt(pos);
// Zahlen 0-9
if (zahl >= 48 && zahl <= 57) {
ergebnis = ergebnis + 2*(zahl-48);
zahl = 0;
IO.print(ergebnis);
ergebnis = 0;
}
}
}
}
Habe ParseInt hier mit eingefügt, damit man sieht was ich erreichen will. Mit ParseInt funktioniert es einwandfrei, aber das ist nicht das Ziel.
Der Fehler liegt noch darin das halt die Zahlen hintereinander geprinted werden. ab 5 ist das Produkt ja 10 (5*2).. und da liegt das Problem bei mir, da müsste ja eigentlich die vorherige Stelle um 1 hoch bei 6 ,7 usw. ja das gleiche prinzip ..
Jemand eine Idee das manuell einzufügen?
Der Fehler liegt noch darin das halt die Zahlen hintereinander geprinted werden. ab 5 ist das Produkt ja 10 (5*2).. und da liegt das Problem bei mir, da müsste ja eigentlich die vorherige Stelle um 1 hoch bei 6 ,7 usw. ja das gleiche prinzip ..
Jemand eine Idee das manuell einzufügen?
Das ist ja mein Problem.. Will einen String einlesen , also Zahlen 1,2,3,4,5 .... dann umwandeln (ohne parseInt) und diese Zahl .. z.B. 125 mit 2 multiplizieren das 250 rauskommt..
Ich printe halt die zahlen direkt nachheinander und ab 5 gibs halt das problem weil 10 rauskommt und er 10 printet.. & da hab ich halt keine idee das zu fixxen
meinst du die for schleife? das fang ich bei 0 an und gehe bis zur länge zeichenanzahl - 1 (weil ich bei 0 anfange) hoch .. Verstehe nicht ganz deine Aussage?
Das ist ja mein Problem.. Will einen String einlesen , also Zahlen 1,2,3,4,5 .... dann umwandeln (ohne parseInt) und diese Zahl .. z.B. 125 mit 2 multiplizieren das 250 rauskommt..
Ich printe halt die zahlen direkt nachheinander und ab 5 gibs halt das problem weil 10 rauskommt und er 10 printet.. & da hab ich halt keine idee das zu fixxen
Verbinden Aber ich weiß nicht wie ich 2 integer verbinde Oder habe ich ein starkes Brett vor dem Kopf?
Oder * 10 rechnen immer davor?
1245
1 * 10+ 2 = 12 --> 12 * 10 +4 = 124 --> 124 * 10 + 5 = 1245 --> Das ergeibt natürlich Sinn
Meinste das?
Danke für die vielen Antworten..
Aber habe die Variante von MrBrown genommen, hatte echt ein starkes brett vor dem kopf
Musste einfach nur ein 10* einfügen, manchmal brauch man auch nur kleine Tipps damit man das Brett vorm Kopf verliert