Bei so etwas wäre immer gut, wenn man eine Info bekommt, was genau nicht funktioniert. Das vereinfacht das finden eines Fehlers.
charAt ist 0 basiert: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#charAt(int)
Deine Schleife, die über alle Zeichen läuft, scheint somit falsch zu sein, denn du startest bei 1 und ignorierst damit die erste Ziffer.
Des Weiteren liefert dir charAt natürlich das Zeichen. Das heisst ein Zeichen von '0' - '9'. Das sind aber keine Zahlen. char wird aber intern als Zahl dargestellt - diese entsprechen aber nicht den Ziffern sondern den ASCII-Werten (Nicht ganz, es sind UTF Werte, aber bei den Ziffern stimmen die Werte überein:
[URL unfurl="true"]https://www.torsten-horn.de/techdocs/ascii.htm[/URL]
Die '0' hat also z.B. einen Wert von 48.
Das musst Du also Korrigieren, z.B. durch Subtraktion: (charAt(i) - '0')
Und da dann immer noch prüfen: ist es eine Ziffer? Also ist das Ergebnis im Bereich von 0 bis 9 (Einschließlich)?
Dann solltest Du aber auch einfach mal schauen, ob Du den Code nicht einfacher hin bekommst. Die Lösung mit help/helpx dürfte zwar funktionieren, aber ist relativ kompliziert gedacht.
Wenn Du eine Ziffer hast, dann hast Du einfach den Wert.
Wenn eine Ziffer dazu kommt, dann verändert sich der bisherige Wert um einen Faktor (10) und der neue Wert kommt hinzu.
Also
Ergebnis := 0
Für jede Ziffer: Ergebnis := Ergebnis * 10 + Ziffer
Das wäre der einfache Algorithmus.
Edit: kleine Schreib- und Ausdruckfehler korrigiert.