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.
Hey!
ich habe ein Problem mit meinem Code, denn ich geschrieben habe. Ich soll die grösste Ziffer eines übergebenen Int-Werts bestimmen. z.B Die größte auftretende Ziffer in -254123 ist 5.
Ich habe mir dazu folgendes Überlegt, den Int-wert zu einem String umwandeln und dann jeden Stelle zu überprüfen. Mein Code sieht wie folgt aus:
[Java]
public int findMaxDigit (int n){
int a=0;
int b=0;
int c=0;
int d=0;
String x = ""+n;
a=x.length();
while ( b<a ){
c=x.charAt(b);
if (c>d){
d=c;
}
b++;
}
return d;
}
[/Java]
Wo könnte hier der Fehler liegen? Die Werte die zurückgegeben werden, sind immer falsch :-( .
Für Hilfe wäre ich sehr dankbalr!!
Lg tyr700
Du bekommst keine falschen Werte! Du bekommst einfach nur die ASCII-Tabelle zurückgegeben. Die Methode charAt(index) gibt ein Char zurück, was bedeutet: ASCII-Tabelle. Du bekommst einfach die Index-Nummern zurückgegeben, weshalb du von int auf char wechseln musst. Ich hab dein Problem auch schöner gelöst:
Java:
public char findMaxDigit(int n) {
char[] numbers;
char resultNumber = 0;
String numbersAsString = n + "";
numbers = new char[numbersAsString.length()];
for (int i = 0; i < numbersAsString.length(); i++) {
numbers[i] = numbersAsString.charAt(i);
}
for (char number : numbers) {
if (number > resultNumber) {
resultNumber = number;
}
}
return resultNumber;
}
Der Fehler liegt darin, dass du da einen Char bekommst (bei charAt()) und du versucht daraus einen Integer zu machen. Dabei bekommst du dann aber nicht den Wert, den der Buchstabe repräsentiert, sondern die Codierung
Geht bestimmt auch schöner, aber das wäre eine Lösung:
vielen dank schonmal für die hilfe, aber irgendwie klappt es immer noch nicht...
ich hab erstmal probiert das c zu verändern, so wie es njans vorgeschlagen hat, aber dann hatte ich einen fehler .. es kam dann :
Code:
java.lang.NumberFormatException: For input string: "-"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:476)
at java.lang.Integer.parseInt(Integer.java:499)
at Wrapper.findMaxDigit(Wrapper.java:20)
at Evaluator.main(Evaluator.java:38)
at EvaluatorExecutor.main(EvaluatorExecutor.java:7)
aber was das jetzt heisst, weiss ich nicht so genau...
Du möchtest ein Zeichen "-" zu einem Int-Wert umwandeln und das ist nicht möglich. Du müsstest das Zeichen "aussortieren", bevor du die Umwandlung nutzt!