Java Werte eines char array addieren?


28.11.2022, 14:42

5 + 4 +3 + 2 = 14

Die Zahlen in dem char stehen für einzelne Zeichen

65 = A usw.

5 Antworten

Hey,

in deiner Ergänzung erklärst du es ja schon selbst. Das zeichen '5' (und auch die anderen) wird durch eine Zahl repräsentiert (in diesem Fall 53). Du hast also '5' (53) + '4' (52) + '3' (51) + '2' (50) = 206.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung

Die anderen haben ja schon gesagt, was das eigentliche Problem ist. Um den Zahlenwert eines Zeichens zu kriegen, kannst du übrigens auch Character.getNumericValue() benutzen:

ergebnis += Character.getNumericValue(array[i]);

Dadurch werden auch alle anderen Unicode Zahlenwerte (Zahlen im Kreis, chinesische/japanische Zahlen etc.) in ihren Zahlwert übersetzt.

Wie kriege ich es hin, dass die einzelnen Zahlen aus dem char-array addiert werden?

Schaffst du doch ;)

Hier kommt als Ergebnis 206 heraus?

Ja, weil du mit dem falschen Typen arbeitest. Du rechnest nicht mit den Werten der Zeichen, sondern mit Chars - den dahinterliegenden Zahlenwerten. Wenn du dir die ASCII-Tabelle anschaust, wirst du merken, dass die Zeichen 0 bis 9 die ASCII-Werte 48 bis 57 haben.

Du rechnest hier nicht 5+4+3+2 = 14, sondern 53+52+51+50 = 206

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

Das ist schon klar und absolut korrekt was dabei herauskommt.

Es werden nicht die "Werte" der Ziffern addiert - was Du interpretierst - sondern die Ordinal-Werte der einzelnen Zeichen.

Woher ich das weiß:Berufserfahrung – Startup zum weltweiten Unternehmen entwickelt.

Deine "Zahlen" sind Zeichen.

Du addierst hier die ASCII-Codes der Zeichen '2' bis '5':

50 + 51 + 52 + 53

Edit:

Um vom ASCII-Code auf die Zahl zu kommen, musst du 48 bei jedem Zeichen abziehen.

RedDevil1982 
Fragesteller
 28.11.2022, 14:46

Wieso muss man 48 bei jeder Zahl abziehen?

0
gfntom  28.11.2022, 14:50
@RedDevil1982

Weil der ASCII-Code einer Ziffer eben um 48 dezimal (30 hexadezimal) größer ist, als der Ziffernwert.

Könnte man selbst nachschauen - ASCII-Tabellen sind online nicht schwer zu finden

1