Wenn es "nur" die Zahlen von '0' bis '9' sind, dann einfach in einem Array durchzählen.

Falls es wesentlich mehr bzw. komplexere Zeichen sind, nimm eine Map als Zähler.

...zur Antwort

Mit 14 GLAUBT man, eine Programmiersprache zu beherrschen, tut dies i. d. R. aber nicht.

Oberflächlich natürlich kein Problem, aber wirklich beherrschen ist was anderes, was die meisten erwachsenen Entwickler auch nicht mit zich Jahren Berufserfahrung packen.

Und ich sage das als jemand, der mit 8 angefangen hat, und seit 30 Jahren Software entwickelt und auf Sicherheitslücken bzw. allgemein auf Qualität und Bugs hin untersucht.

...zur Antwort

Weil der Compiler die Konkatenation mit dem primitiven int in ein Literal optimiert, das Selbe bei geboxten Integer aber nicht schafft.

Deshalb sind in ersterem Falle die Referenzen gleich, im Letzteren hingegen nicht.

Die Variable str1 wird also komplett wegoptimiert und durch eine Referenz auf den Literal zur Rechten ersetzt, was beim Vergleich also immer zwangsweise true ergeben wird.

str2 hingegen wird tatsächlich zur Laufzeit zusammengebaut und ist damit eine Referenz auf ein völlig anderes Objekt, weshalb hier ein Vergleich immer false liefern wird.

Tipp: Gewöhne dir an, mt einem Decompiler oder Disassembler umzugehen, dann stellen sich solche Fragen gar nicht erst. :)

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.