Java Zahl von String in Int ohne ACII Darstellung

Hallo!
Ich möchte die Quersumme einer Zahl auf folgender weise berechnen, und nicht mit Modulo und sonst wie :wink:

Zahl von int einlesen
Die Zahl in ein String umwandeln

  1. Ziffer entnehmen und in eine Variable vom Typ int umwandlen
  2. Ziffer entnehmen und in eine Variable vom Typ int umwandlen

usw.
Und nun habe ich das Problem, dass die Int-Variable die ASCII-Zahl der jeweiligen Characters ausgibt.

ich habe es mit „charAt(i);“ versucht zu lösen aber no Chance…

Geht halt wirklich darum, dass ich einzelne Ziffern aus einem String raushole und in einen Datentyp von Int packe, ohne das nunmal die ASCII-Zahl da steht :wink:

Wäre euch echt dankbar!

string stringZahl = „123“;
int intZahl = Integer.parseInt(stringZahl);

string stringZahl = „123“;
int intZahl = Integer.parseInt(stringZahl);

Geht leider nicht =(
Ich möchte die Zahl in einen String packen. Den String in einzelne Ziffern separieren und die in einem Array als Int-Werte unterbringen. Wenn ich dieses Array ausgebe werden aber die ACII Werte ausgegeben :confused:

Das geht schon, Integer.parseInt() ist die Lösung !

int[] array = new int[3];
string stringZahl = „123“;

int intZahl = Integer.parseInt(stringZahl.charAt(0));
array [0] = intZahl;

intZahl = Integer.parseInt(stringZahl.charAt(1));
array [1] = intZahl;

intZahl = Integer.parseInt(stringZahl.charAt(2));
array [2] = intZahl;

Ansonsten versuch mal

char b = stringZahl.charAt(0)
int a = (int)b;

Danke für die schnelle Hilfe. Das obige habe ich getestet, da kam folgende Fehlermeldung bei Eclipse:

„The method parseInt(String) in the type Integer is not applicable for the arguments (char)“

Ansonsten versuch mal

char b = stringZahl.charAt(0)
int a = (int)b;

Habe ich soeben auch getestet, aber leider wird bei mir der ASCII Wert ausgegeben. Also an der Stelle „0“ wird 49 ausgegeben. :-/

Nargh, war beides zu befürchten (sorry, mach das auch gerade aus dem Kopf)…

Nächster Versuch mit Character.toString():

int[] array = new int[3];
string stringZahl = „123“;

int intZahl = Integer.parseInt(Character.toString(stringZahl.charAt(0)));
array [0] = intZahl;

Mit Character.toString() wird der char zuerst in ein String umgewandelt, der dann von Integer.parseInt() in einen int umgewandelt wird…

Schwere Geburt :wink:

Die Zahlen fangen in der ASCII Tabelle bei der Stelle 48, dabei ist die Zahl 0 an der Stelle 48, die Zahl 1 an der Stelle 49, die Zahl 2 an der Stelle 50 und entsprechend weiter bis die Zahl 9 an der Stelle 57 ist. Castet man ein Char zu einem int bekommt man natürlich die ASCII Stelle von der Zahl und nicht den Zahlenwert. Möchtest du aber den Zahlenwert haben, muss du nur den Zahlenwert mit 48 subtrahieren. Hier mal ein Bsp.

public class Char2Number {

public static void main(String[] args) {
String s = „1432598607“;
for (int i = 0; i

Sorry da kann ich dir leider nicht weiterhelfen, aber versuchs doch mal im Java Forum, da gibts die Cracks die da so richtig fit sind. Sorry, aber mehr kann ich da nicht helfen.

/*
wenn du dir die ascii-tabelle anschaust siehst du dass die Zahlen geordnet sind 1,2,3,4
Also einfach ‚0‘ abziehen
*/

public class Quer {

public static void main(String[] args) {

int x = 12;
String str = „“ + x;

int quersumme = 0;

for (char c : str.toCharArray()) {
int zahl = c - ‚0‘;
System.out.println("Zahl: " + zahl);
quersumme += zahl;
}

System.out.println(quersumme);

}

}

// Da gibt’s doch eine Funktion in der JAVA-Api

public class Quer {

public static void main(String[] args) {

int x = 12;
String str = „“ + x;
int result = 0;

for(char valueDigit : String.valueOf(str).toCharArray()) {
result += Character.digit(valueDigit, 10);
}
System.out.println(result);
}

}

Danke euch für die Antworten. Ich habe es nun so gelöst:

public static void main(String[] args)
{
int quersumme = 0;
int zahl = 2341; // Eingabe der Zahl wurde vordefiniert in: 2341
String eingabe;
int[] Ziffer = new int[4];

eingabe = (new Integer(zahl)).toString(); // Konvertiert int in String (Im Struktogramm vergessen)

for (int i = 0; i

Das Programm funktioniert einwandfrei. :smile: