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.
Also ich versuch grade ein programm zu schreiben in das man beliebige zahlen eingibt, dann wird die eingabe in einem Array gespeichert und soll kontrolliert werden ob es zahlen doppelt gibt. Und wenn es Zahlen doppelt gibt dann soll so gelöscht werden
Java:
import java.util.Scanner;
public class main {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
String[] Zahlenliste;
int zahlen;
System.out.println("Bitte die gewünschten Zahlen eingeben(jede zahl mit einem komme trennen)");
zahlen = scan.nextInt();
Zahlenliste = zahlen.split(,);
switch(Zahlenliste) {
case 1:
if
}
}
}
Ich hab es so versucht das die zahlen mit der .split methode zu trennen. Aber wenn ich das mache sagt mir intellij das das nicht geht.
Das überprüfen ob es doppelte zahlen gibt hab ich mit einem Switch case versucht hab dann aber gemerkt das ich es nicht hinkriege und nach einer anderen methode gesucht und bin auf
Code:
int[] deleteEquals(int[] ia)
gestoßen. Da verwirrt mich jetzt aber ob das ia eine methode ist oder einfach nur der Namer von dem int weil im INternet hab ich dazu auch nichts gefunden und als ich denn Namen ändern wollte hat intellij wieder gemeckert.
Meine fragen sind jetzt:
1. warum die .split methode nicht funktioniert oder ob sie funktioniert aber nur mit einem String
2. wenn keine split methode geht was für eine methode geht dann?
3. kann man das löschen der doppelten zahlen damit:
Code:
int[] deleteEquals(int[] ia)
machen, mit einem switch case oder mit einer ganz anderen methode?
4. ob man sagen muss das es ein
Du fragst ja den Scanner nach einem int. Ein int ist nun einmal eine ganze Zahl und keine Zahlenreihe. Des weiteren ist ein int ein Basis Datentyp. Da kann man so also keine Methoden aufrufen. Das würde nur auf Referenzen gehen.
Wenn Du also eine Zahlenreihe eingeben können willst, dann musst Du da einen vernünftigen Datentyp für aussuchen und das könnte dann tatsächlich ein String sein.
Also die Signatur der Methode ist erst einmal ok, aber das mit dem swith case habe ich nicht verstanden. Wenn Du etwas programmieren möchtest, dann musst Du Dir genau überlegen, wie Du da vorgehen möchtest. Das kannst Du mit einem Stift und Papier machen. Wenn ich Dir eine Liste von Zahlen gebe: Wie schaffst Du es, doppelte Zahlen zu löschen? Wenn Du es hin bekommen solltest, dann überlege genau, wie Du vorgegangen bist. Schreibe die Schritte auf. Wenn Du das einmal hast, dann musst du die Schritte nur noch in ein Java Programm übersetzen.
4. ist wieder unverständlich. Was genau willst Du denn da wissen?
(1)Gut wenn ich einen String nehme kann ich trotzdem zahlen eingeben. Danke
Aber jetzt habe ich das problem das nicht die Liste an sich sondern irgenwas ausgegeben wird.
Java:
import java.util.Scanner;
public class main {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
String[] Zahlenliste;
String zahlen;
System.out.println("Bitte die gewünschten Zahlen eingeben(jede zahl mit einem komme trennen)");
zahlen = scan.nextLine();
Zahlenliste = zahlen.split(",");
System.out.println(Zahlenliste);
}
}
ausgabe:[Ljava.lang.String;@610455d6
Da verstehe ich jetzt nicht ganz warum das ausgegeben wird wenn ich sage das der Array ausgegeben werden soll.
(2)Was heißt deutlich mehr anpassen, wie kann man das anpassen?
(3)Mit dem Switch case meine ich das ich sage das gleiche zahlen gelöscht werden nur das ich das ein switch case durch denn ganzen Array gehen lasse.
Code:
switch(Zahlenliste){
case 1:
if wenn eine zahl gleich ist wird sie gelöscht
}
Und wie funktioniert das
Code:
int[] deleteEquals(int[] ia)
das genau?
Mich verwirrt das total weil ich finde auch keine richtige antwort dazu im Internet
(4)Damit mein ich ob man vorher sagen muss das wenn man int oder Strings einspeichern möchte denn Array so definieren muss mit int[] und String[]
Du willst ja eine Auflistung der Inhalte des Arrays. Versuch mal System.out.println(Arrays.toString(Zahlenliste));, wobei Arrays aus dem Paket java.util stammt.
Das gibt überhaupt keinen Sinn. Ein switch ist einfach ein Statement, das den im switch angegebenen Ausdruck mit dem im case angegebenen vergleicht und bei Gleichheit den entsprechenden Code ausführt.
Java:
switch(Zahlenliste) {
Zahlenliste ist hier eine Variable, die eine Referenz auf ein Array hält. Wäre der Spaß syntaktisch zulässig, würdest Du an der Stelle einen Referenzvergleich durchführen. Zwei Referenzen können aber nur gleich oder ungleich sein. Das switch-Statement ist also völliger Unfug.
Das ist einfach die Signatur eine Methode, die Du implementieren und aufrufen könntest.
Java:
static int[] deleteEquals(int[] input) {
int[] output;
// hier die Implementierung
return output;
}
Wenn Du eine solche Methode in Deine Klasse aufnimmst, könntest Du die Methode aufrufen. Das static habe ich nur hinzugefügt, damit Du es von main aus aufrufen kannst (die main-Methode ist auch static).
Wobei diese Anfänger Aufgaben aus meiner Sicht weniger die Lösung sondern den Lösungsweg im Fokus haben.
Daher ist es existenziell, dass man sich hier überlegt, was man wie machen kann. Und der einfachste Weg ist immer per Stift und Papier sich sowas zu überlegen und das muss gelernt werden.
Daher ist wirklich die Frage: Wenn man Dir ein Array gibt aus [ 1, 5, 9, 3, 1, 9, 7 ]
Kannst Du die doppelten Zahlen löschen?
Wie gehst Du vor?
Dann hat man sich ganz schnell einen Algorithmus überlegt, den man dann nur noch umsetzen muss. Aber diese erste Überlegung, die ist das Wichtige und diesen Schritt muss man erst einmal hin kriegen. Denn da entsteht die Lösung.
ok nice hat mir sehr geholfen aber jetzt hab ich das problem das intellij bei manchen sachen meckert und ich mir jetzt nicht sicher bin ob was fehlt oder ich was falsch mache. Ich kann schlecht erklären wo genau das ist aber überhalt wo so ein _ ist wird gemekert
Java:
import java.util.Scanner;
public class main {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
String[] Zahlenliste;
String zahlen;
System.out.println("Bitte die gewünschten Zahlen eingeben(jede zahl mit einem komme trennen)");
zahlen = scan.nextLine();
Zahlenliste = zahlen.split(",");
deleteEquals()_
System.out.println(_Array_.toString(Zahlenliste));
}
static int[] deleteEquals(int[] input) {
int[] output;
int[] deleteEquals(_int[] ia_)
return output;
}
}