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.
public static int umkehren(int zahl)
{
// 1234567 => wird übergeben
return zahl;
// 7654321 => soll zurückgeben werden
// besonderer Fall wäre 123400 => 4321
}
bin leider nicht in der Lage einzelne Positionen des Integers anzusteuern wie auch bei String funktionen
Stringvariable.charAt(position)
der Typcast von Integer in String schlägt leider fehl....
hat jemand eine Idee ?
ich könnte das einfügen von Zahlen(Manipulieren) und aufsteigend sortieren auch alleine coden, würde ich wissen wie ich direkt einzelne zahlen innerhalb von z.B. "123856" ansteuern kann...
Dann müsstest Du mal gucken, ob es eine Mathematische Formel dafür gibt...
Noch ein Tipp: Wenn Du an Stelle eines Strings einen Stringbuffer nimmst, kannst Du sofort die Methode reverse() benutzen um deine Zeichenkette umzudrehen.
wenns du ein String nehmen willst, dann ist es recht einfach...
1. von hinten heran durchlaufen und zeichen in einen neuen String schreiben
2. StringBuffer nehmen und die Methode reverse nutzen
wenn es kein String sein darf dann siehe link oben
Habe mir nochmal Gedanken gemacht. Ohne in String zu casten muss man einfach immer die Letzte Zahl ermitteln und einem Ergebnis*10 zuweisen, bis die Eingabezahl abgearbeitet ist:
Code:
int ergebnis = 0;
while ( zahl > 0 ) {
int letzteZiffer = zahl % 10;
ergebnis = ergebnis*10 + letzteZiffer;
zahl = (zahl-letzteZiffer)/10;
}
charAt liefert dir das char an der angegebenen Position...
ich verstehe nicht die 3 parameter der methode. willst du an der Stelle pos die Zahl "neueZiffer" einfügen. also einfügen oder das alte zeichen dort überschreiben...
soweit sogut... funktioniert auch (das compilieren)
Code:
public static int einfuegen(int zahl, int stelle, int wert)
{
String daten = String.valueOf(zahl);
String daten2 = "";
for (int i = daten.length(); i >= 1 ; i--)
{
// stelle zum modifizieren der Zahl erreicht?
if (stelle == i)
{
daten2 += String.valueOf(wert);
}
daten2 += String.valueOf(daten.charAt(i));
}
int cb = Integer.parseInt(daten2);
return cb;
}
nur in der Zeile:
-> daten2 += String.valueOf(daten.charAt(i));
dreht er zur Luafzeit durch java.lang. durch StringArray Out of Bounds... was is daran falsch ? += ?
deine for schleife ist falsch
du musst con daten.lenght-1 bis 0 laufen lassen... da die indizierung in java von 0 bis length-1 geht. außerdem müsstest du den if zweig nach dem du das aktuelle zeichen hinzugefügt hast schrieben
du wirst aber dann auch sehen, dass es nicht ganz funktioniert...
bsp: zahl = 100, stelle = 0, wert = 4
ergebnis ist 14....
du parst das ganze dann als zahl und 0014 ergibt 14....
public static int einfuegen(int zahl, int stelle, int wert)
{
String daten = String.valueOf(zahl);
String daten2 = "";
for (int i =0 ; i <= daten.length()-1 ; i++)
{
// stelle zum modifizieren der Zahl erreicht?
if ((stelle-1) == i)
{
daten2 += String.valueOf(wert);
}
else
{
daten2 += String.valueOf(daten.charAt(i));
}
}
int cb = Integer.parseInt(daten2);
return cb;
}
vielen dank!
finde das umwandeln von datentypen in Java ein bißchen sehr nervig, aber so langsam komme ich wieder rein... hab schon ewig nix ernstes mehr mit java gemacht...