Größte Ziffer einer Zahl

java26

Mitglied
Hallo,

die Aufgabe ist...

In dieser Aufgabe soll die größte Ziffer einer übergebenen ganzen Zahl ermittelt werden, wenn diese in der Zehnerbasis dargestellt wird.Beispiel: Die größte auftretende Ziffer in -254123 ist 5.

Java:
int a = 0;
int b = 0;
int c = 0;

if (n<0){
n=n*(-1);
}

String x = ""+n;
a=x.length();

for (int i = 1; i <= a; i++) {
	b = charAt(i);
	
	if (b>c){
		c=b;
	}
}
return c;


Es kommt folgender Fehler raus.

Wrapper.java:25: cannot find symbol
symbol : method charAt(int)
location: class Wrapper
b = charAt(i);
^
1 error


Könnt ihr mir da mal hefen?
 

XHelp

Top Contributor
du willst höhstwahrscheinlich
Code:
x.charAt
aufrufen.
P.S. in b steht nicht die Ziffer drin, sondern der ASCII-Code der Ziffer.
 

Xeonkryptos

Bekanntes Mitglied
zum Beispiel über den Konstruktor: String-Konstruktor

Edit: Oder du packst es in ein Array vom Typ [JAPI]CharSequence[/JAPI] und wendest dann die Methode toString() an, sofern du mehrere Chars hast. Wenn du nur einen hast, musst du dem String den Char einfach nur zuweisen.
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Java:
import java.util.*;

public class GroessteZiffer {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.print("Gib die zu bearbeitende Zahl ein: ");
        char[] input = sc.nextLine().toCharArray(); //Eingabe aus der Kommandozeile lesen
        
        char c = '0';
        for(int i = 0; i < input.length; i++) {
            if(Character.isDigit(input[i])) { //Zeichen auf numerischen Wert prüfen
                if(input[i] > c) { //ist das Zeichen größer als c?
                    c = input[i]; //Zeichen merken
                }
            }
            else {
                System.out.println("Die Eingabe besteht zum Teil aus Buchstaben!");
                return;
            }
        }
        System.out.println("Die groesste Ziffer in der eingegebenen Zahl lautet "+c);
    }
}
 

xehpuk

Top Contributor
So hätte es dann mit meinem Vorschlag ausgesehen:
Java:
public final static int BASE = 10;

public static int maxDigit(int n) {
	if (n < 0)
		n = -n;
	int max = 0;
	while (n > 0) {
		final int i = n % BASE;
		if (i > max)
			max = i;
		n /= BASE;
	}
	return max;
}
 

Landei

Top Contributor
Java:
public static int biggest(int n) {
   int big = 0;
   for(int x = Math.abs(n); x > 0; x /= 10) {
       big = Math.max(x % 10, big);
   }
   return big;
}
 

Peter W. Marth

Aktives Mitglied
Java:
	private static int biggest(int n){
		return n>0 ? Math.max( n%10, biggest(n/10) ) : 0;
	}

für nicht negative n.
 
Zuletzt bearbeitet:

Neue Themen


Oben