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.
Hallo alle zusammen. Ich bin noch ziemlich neu in der Programmierwelt und hab die ein oder anderen Schwierigkeiten beim implementieren meiner Methode. Ich soll eine Methode erstellen die erkennt ob es sich um eine Dualzahl handelt oder nicht, wenn ja soll sie den Wert boolean true zurückgeben wenn nicht dann false. Außerdem soll sie false ausgeben wenn es sich um eine römische eins, ein großes O oder einen negativen Wert handelt. Nach etlichen Versuchen bin ich noch auf die Idee gekommen den Unicode zu verwenden, hat aber auch nicht geklappt. Vielleicht könnte mir jemand erklären warum und einen Denkanstoß geben um auf die Lösung zu kommen?
Code:
public class IsDualNumber {
private final String s;
public IsDualNumber(String s){
this.s = s;
}
static boolean IsDualNumber() {
Scanner eingabe = new Scanner(System.in);
System.out.println("Bitte gib Zahl ein!");
String string = eingabe.next();
boolean status = string.contains("0") || string.contains("1");
if (status == true) {
System.out.println("Dualzahl");
}else{
System.out.println("keine Dualzahl");
}
return status;
}
public static void main (String[]args){
IsDualNumber();
}
}
Dein Code ist fast richtig. Du prüfst allerdings nur, ob string eine 0 oder 1 enthält. Tatsächlich müsstest Du prüfen, ob in string etwas anderes als eine 0 oder 1 vorkommt. Zum Beispiel, indem Du jedes einzelne Zeichen auf 0 und 1 hin überprüfst...
Was ich mich dabei frage:
Woher weißt du denn, das es sich bei der Zeichenkette "101" nicht um eine Dualzahl handelt? Genauso gut könnte es auch eine Hexadezimal- oder Oktalzahl sein, nebst jedem anderen exotischen Stellenwertsystem.
Anders sähe es bei den Zeichenketten "0b101", "0x101" und "0d101" aus, da ist das eindeutig. Was ich sagen will: Ich weiß zwar nicht genau was du da baust, aber an deiner Stelle würde ich über das Konzept nochmal nachdenken.
Edit:
Oder willst du nur wissen, ob es sich bei der Zeichenkette um eine Dualzahl handeln KÖNNTE? In diesem Fall würde ich die Methode anders benamsen, z.B. isValidDual() oder so.
Was ich mich dabei frage:
Woher weißt du denn, das es sich bei der Zeichenkette "101" nicht um eine Dualzahl handelt? Genauso gut könnte es auch eine Hexadezimal- oder Oktalzahl sein, nebst jedem anderen exotischen Stellenwertsystem.
Du hast zwar Recht, aber ich denke, dass es sich um eine Übung handelt und man diese Möglichkeit nicht unbedingt berücksichtigen muss. BTW: Es könnnte ja auch einfach nur 101 ("einhundertundeins") sein.
Dein Code ist fast richtig. Du prüfst allerdings nur, ob string eine 0 oder 1 enthält. Tatsächlich müsstest Du prüfen, ob in string etwas anderes als eine 0 oder 1 vorkommt. Zum Beispiel, indem Du jedes einzelne Zeichen auf 0 und 1 hin überprüfst...
Du hast zwar Recht, aber ich denke, dass es sich um eine Übung handelt und man diese Möglichkeit nicht unbedingt berücksichtigen muss. BTW: Es könnnte ja auch einfach nur 101 ("einhundereins") sein.