Fehler wenn ich auf Spigot 1.8.8 Server joine?

Hi. Ich komme nicht auf meinen Spigot 1.8.8 Server. Immer wenn ich versuche zu joinen kommt unendlich lange diese Meldung ganz schnell wiederholt in der Konsole:

[16:25:56 WARN]: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.RuntimeException: Unable to access address of buffer
        at io.netty.channel.epoll.Native.read(Native Method) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:678) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe$3.run(EpollSocketChannel.java:755) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:268) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at java.base/java.lang.Thread.run(Thread.java:831) [?:?]

Ich habe kein einziges Plugin auf dem Server und seit dem ersten Start nichts verändert. Und ja ich bin auch gewhitelisted und so...

Server, Computer, Java, Minecraft, Minecraft Server, Bukkit, craftbukkit, Spigot, minecraft 1.8, Spiele und Gaming
Android Studio App stürzt ab nach klick auf Button?

Hallo,

ich habe eine Android Studio Applikation mit einer Bottom Navigation bar, bei welcher unter dem Reiter "Profile" ein User hinzugefügt werden soll. Wenn ich dort auf "Add User" klick stürzt die App allerdings ab, in der Version ohne Navigationsbar funktioniert das allerdings einwand frei. Vielleicht kann mir jedmand helfen, den Fehler zu finden.

Hier ist die UI von Profile:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...
    ...
    <Button
        android:id="@+id/btAddUser"
        ...
        android:text="Add User"
        android:onClick="onAddUser"
        />

</LinearLayout>

Hier die UI der BottomBar:

<?xml version="1.0" encoding="utf-8"?>
<...
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fragment_container"
        >  
...
 app:menu="@menu/bottom_navigation"/>
    </FrameLayout>

Die Klasse zur BottomBar:

package com.example.bottomnav;
import ...
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

BottomNavigationView bottomNavigation = findViewById(R.id.bottom_navigation);    bottomNavigation.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
...
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull @NotNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId())
{
case R.id.nav_projects:
selectedFragment = new ...
ProfileFragment();
break;
}
                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}};}

Hier der Code zum Profil hinzufügen:

@Nullable
@org.jetbrains.annotations.Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_profile, container, false);
}

public
class MyActivity extends AppCompatActivity {
    ...

    Button btAddUser;
...

    Boolean isAdmin = Boolean.FALSE;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_profile);
       ...
        btAddUser = findViewById(R.id.btAddUser);

        btAddUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {onAddUser(btAddUser);}

    public void onAddUser(View view) {
...

Computer, Java, Android, Informatik, XML, Progamm, Android Studio
Java Fenster Hintergrundfarbe ändern?

Hallo und guten Tag,

ich möchte die Hintergrundfarbe von einem Javafenster ändern. Doch wenn ich es wie unten gezeigt mache, dann blinkt die Farbe beim Starten nur einmal kurz auf.

Das hier ist der ganze Code:

public class Main extends JFrame{
    
    static JButton button;
    

    public Main() {
        JFrame frame = new JFrame("Clicker");
        frame.setSize(500, 400);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);
        frame.setLayout(null);
        frame.requestFocus();
        frame.setBackground(new Color (30, 34, 71));
        
        
        button = new JButton("Click Here!");
        button.setBounds(100, 75, 200, 150);
        button.setFocusPainted(false);
        button.setBorder(BorderFactory.createRaisedBevelBorder());
        button.addActionListener(new ActionHandler());
        button.setBackground(new Color (30, 34, 71));
        frame.add(button);
        
        
        
        
        
        frame.setVisible(true);
        
    }

    public static void main(String[] args) {
        new Main();
        
    }

}
Computer, Fenster, programmieren, Java, Java Swing
Wie kann ich die Funktionen meiner Lagerverwaltung in Java erneut anzeigen lassen?

Hey zusammen!

Ich mache aktuell einen Kurs zur Programmiererin in Java und stehe noch am Anfang.

Aufgabe war es, eine Lagerverwaltung mit maximal 75 Kisten, einigen Funktionen und einem mehrdimensionalen Array zu erstellen.

Mittlerweile habe ich etwas zusammengebracht, jedoch scheitert es nun nur noch an einem Punkt:

Wenn ich das Programm starte kann ich eine Funktion auswählen und die Daten einer Kiste z.B. eingegeben. Jedoch startet dann immer wieder die gleiche Funktion und nicht erneut die Abfrage, welche Funktion gewählt werden soll. Wie kann ich einstellen, dass nach jeder Eingabe erneut nach der Funktion gefragt wird?

Ich hoffe es ist verständlich erklärt. Leider kann ich den kompletten Quelltext nicht rein kopieren. Es wird mir als zu lang angezeigt. Daher nur der Part mit der Funktionsauswahl. Vielleicht reicht das ja schon.

  public static void main(String[] args) {
    // Die Vereinbarung des Arrays
    int [][] lagerverwaltung = new int[75][4];
  
    // Auswahl der Funktion
    String funktionEinlesen;
    char funktion;
  
    System.out.println("Folgende Funktionen stehen Ihnen zur Auswahl: \n");
    System.out.println("A \t Eingabe einer neuen Kiste");
    System.out.println("B \t Löschen einer Kiste");
    System.out.println("C \t Ändern einer Kiste");
    System.out.println("D \t Daten einer Kiste anzeigen");
    System.out.println("E \t Daten aller Kisten anzeigen");
  
    funktionEinlesen = JOptionPane.showInputDialog("Wählen Sie eine Funktion");
    funktion = funktionEinlesen.charAt(0);
  
    // Auswahl auswerten
    switch(funktion) {
      case 'a':
      case 'A':
        System.out.println("\nSie haben \"Eingabe einer neuen Kiste\" gewählt");
        eingabe(lagerverwaltung);
        break;
      case 'b':
      case 'B':
        System.out.println("\nSie haben \"Löschen einer Kiste\" gewählt");
        löschen(lagerverwaltung);
        break;
      case 'c':
      case 'C':
        System.out.println("\nSie haben \"Ändern einer Kiste\" gewählt");
        ändern(lagerverwaltung);
        break;
      case 'd':
      case 'D':
        System.out.println("\nSie haben \"Daten einer Kiste anzeigen\" gewählt");
        anzeigen(lagerverwaltung);
        break;
    }
  
    System.exit(0);
  }
}
Computer, Technik, programmieren, Java, Technologie, Spiele und Gaming
Kann mir bitte schnell jemand bei einem Java fehler helfen?

Guten Tag zusammen,

ich habe auf meinem vServer zurzeit BungeeCord installiert. Dieser soll 2 Server miteinander verbinden. Server 1 kann ich starten und mich auch über BungeeCord via Minecraft verbinden. Doch bei Server 2 gibt es folgenen Fehler:

[0,077s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 4k, detached.
[0,078s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
        at java.base/java.lang.Thread.start0(Native Method)
        at java.base/java.lang.Thread.start(Thread.java:798)
        at java.base/jdk.internal.ref.CleanerImpl.start(CleanerImpl.java:118)
        at java.base/java.lang.ref.Cleaner.create(Cleaner.java:203)
        at java.base/jdk.internal.ref.CleanerFactory.<clinit>(CleanerFactory.java:42)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:729)
        at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:849)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:348)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:319)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:258)
        at java.base/sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:521)
        at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:747)
        at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)

Der Server hat 16GB RAM, 2GB für BungeeCord, 6GB für Server 1 und 3GB für Server 2.

Danke für die Hilfe im Voraus,
MFG MrGLaDOS

Java, Error, Minecraft Server, vserver linux
Java - Komponenten aus einem Graph berechnen / Algorithmus?

Hallo, ich arbeite gerade an einem Graphenprogramm und der nächste Schritt ist es ,mir die Zusammenhangskomponenten des Graphes auslesen zu lassen.

Eine dafür notwendige Wegmatrix habe ich schon programmiert:

public void berechneKomponenten()
    {
        
        for (int i = 0; i < Matrix.length; i++)
        {
            for(int j = 0; j < Matrix[i].length; j++)
            {
                if(WegMatrix[i][j] == 1)
                {
                    int buchstabe_int = i+65;
                    char buchstabe_char = (char) buchstabe_int;
                    
                    System.out.print(buchstabe_char + ",");
                }                        
            }        
        }
    }

Die Ausgabe sieht so aus:

A, A, A, B, B, C, C, C, D, D, D, E, E

--------------------------------------------------------

Und das ist im Prinzip auch richtig, denn:

Die Buchstaben (A-E) habe ich zum Verständnis hinzugefügt.
-------------------------------------------------------------------------------------

Meine Wegmatrix hat:

  • 3 A's
  • 2 B's
  • 3 C's
  • 3 D's
  • 2 E's

Verglichen mit meiner Ausgabe:

A, A, A => 3 A's
B, B => 2 B's
C, C, C => 3 C's
D, D, D = > 3 D's
E, E => 2 E's

-----------------------------------

Doch die Ausgabe sollte so aussehen: (Siehe K1 und K2)

bzw so:

Wie schaffe ich das?

Danke!

Bild zum Beitrag
Computer, programmieren, Java, Informatik
Eine Jar-Datei in der Eingabeaufforderung erstellen?

Ich lerne gerade Java mit einem Buch und bin gerade dabei, eine Jar-Datei über die Eingabeaufforderung zu erstellen. Doch da gibt es etwas das ich nicht verstehe und ich hoffe, dass ihr mir es erklären könnt.

Das ist die Klasse, die ich in eine Jar-Datei umwandeln soll:

package de.galileocomputing.schroedinger.java.kapitel13;

import java.io.IOException;

public class HalloSchroedinger {

    public static void main(String[] args) throws IOException{
        System.out.println("Hallo Schrödinger");
    }

}

Das kompilieren bekomme ich ohne Probleme in der cmd hin:

javac HalloSchroedinger.java

Auch das erstmalige Erstellen einer Jar-Datei:

jar cf SagHallo.jar C:\Users\...\Documents\Java\SchrödingerProgrammiertJava\src\de\galileocomputing\schroedinger\java\kapitel13\HalloSchroedinger.java

Beim Hinzufügen der auszuführenden Main-Methode klappt es aber nicht mehr... In meinem Buch sieht der Text so aus:

jar ufe SagHallo.jar de.galileocomputing.schroedinger.java.kapitel13.HalloSchroedinger de\galileocomputing\schroedinger\java\kapitel13\HalloSchroedinger.class

Es ist ja eigentlich fast genau so, wie beim einfachen Erstellen der Jar-Datei. Doch der Teil nach dem "SagHallo.jar" bis zum Anfang des Pfades gibt mit Rätsel auf. Was ist das? Wie lautet der bei mir?

Das habe ich schon probiert...

C:.Users.'''.Documents.Java.SchrödingerProgrammiertJava.src.de.galileocomputing.schroedinger.java.kapitel13.HalloSchroedinger

...dann wird aber eine "ClassNotFoundException" geworfen.

Ich hoffe ihr könnt mir helfen. Vielen Dank im voraus.

(Ich weiß übrigens, dass man es normalerweise nicht über die CMD macht.)

Computer, Technik, programmieren, Java, cmd, Eingabeaufforderung, JAR, Technologie
Java - Distanzmatrix Algorithmus, Wie ansetzen?

Hallo, ich bin gerade dabei ein Graphenprogramm zu schreiben und stecke bisschen bei der Distanzmatrix.

Ich weiß nicht ob sich jemand bei Graphentheorie auskennt oder nicht aber der Algorithmus für die Distanzmatrix ist relativ einfach. Nur das umsetzen in Code fällt mir sehr schwer und deswegen hoffe ich, dass ihr mir vielleicht dabei helfen könnt..

Der Algorithmus für eine Distanzmatrix lautet so:

Man hat eine Eingangsmatrix (Adjazentmatrix).
Die könnte so aussehen:

Man markiert sich alle Nuller die in der Adjazentmatrix vorkommen (AUßER DIE HAUPTDIAGONALE, DIE BLEIBT UNBERÜHRT).

Dann erstellt man sich eine eigene Matrix die man "DistanzMatrix" nennen kann und setzt alle Nuller die eben in der Adjazentmatrix vorkommen auf "Unendlich" oder auch auf INTEGER.MAX_VALUE in der Programmiersprache .

Das schaut dann so aus:

Also haben wir jetzt 2 Matrizen. Bis dahin habe ich es auch geschafft in meinem Programm. Die Ausgabe schaut bei mir so aus:

Die "-9" sind alle Nuller, die auf UNENDLICH gesetzt sind (siehe zweites Bild).

Der nächste Schritt ist es die Potenzen der Eingangsmatrix (Adjazentmatrix) zu berechnen. Das habe ich ebenfalls schon geschafft im Code.

Das heißt, die Adjazentmatrix (siehe Bild 1) wurde potenziert und so könnte das Ergebnis der Potenzberechnug aussehen.

Man schaut sich jetzt alle Nuller (außer die Hauptdiagonale von der Eingangsmatrix an (siehe Bild 1)) und markiert sich nur die Zahlen (rot), die sich von der Potenzierung der Eingangsmatrix verändert haben. (Außer die Nuller (=Neue Nuller die durch die Potenzierung entstanden sind bleiben auch weiterhin eine Null))

Und der letzte Schritt ist es jetzt, die von mir erstellte DistanzMatrix upzudaten, indem ich im ersten Schritt alle rote Zahlen von A²(G) in 2 umwandle. Alle Nuller die übrig bleiben, werden wieder in UNENDLICH umgewandelt.

Und das wird jetzt so oft wiederholt, bis es keine UNENDLICH Zeichen mehr in der Distanzmatrix gibt. Und aus UNENDLICH wird 3. Und immer so weiter.. Falls es zb nach der fünften Potenzierung immer noch Nuller bzw UNENDLICH Werte gibt dann wird aus UNENDLICH 5.

Somit ist D³(G) das Ergebnis.

Ich hoffe ich konnte es ausführlich genug erklären

Danke

Bild zum Beitrag
Computer, Schule, Technik, programmieren, Java, Informatik, Technologie, Algorithmus, Graphentheorie
Java Array ober und Untergrenze?

Hallo,

Ich Versuche seit mehreren Stunden mir eine Array Auszugeben wo ich eine Ober und untergrenze definiert hab aber ich bekomme es nicht hin ergo. ich bite um Hilfe.

Die Array:

zf = new int[11];
zf[1] = 1;
zf[2] = 2;
zf[3] = 3;
zf[4] = 10;
zf[5] = 9;
zf[6] = 8;
zf[7] = 7;
zf[8] = 6;
zf[9] = 5;
zf[10] = 4;

Sortierung:

    private void sortierungsbegrenzung( int a[], int untergrenze, int obergrenze)
    {
         int i, j, n = (obergrenze-untergrenze)-1;  
         int x;
        for ( i = (untergrenze+2); i <= n; i++ )      
        {    
            boolean getauscht = false;
            for (j = n; j >= i; j-- )           
            {                
                if ( a[j-1] > a[j] )           
                {
                    tauschen(zf, j, 1);
                    getauscht = true;
                }
            } /*end for*/
            if (!getauscht)
            {
                break;
            }
            zfAusgeben(zf);
        } /*end for*/
    }

tauschen:

    private void tauschen(int b[], int k, int t)
    {               
        int x;
        x = b[k-t];
        b[k-t] = b[k];
        b[k] = x;
    }

zfAusgabe:

    private void zfAusgeben(int[] a)
    {
        for (int i=1; i<a.length; i++)
        {
            System.out.print( a[i] + "\t");
        }
        System.out.println();
    }

ich finde den Fehler nicht

MfG

Computer, programmieren, Java, Informatik
Java Comparator schreiben?

Ich hab folgende Aufgabe, ich soll Spielkarten in Java sortieren.

Mein Prof schrieb folgendes in die Aufgabe:

Mit erster Priorität nach Rängen (Rank) und zwar Ass vor König, König vor Dame, Dame vor Bube, Bube vor 10, 10 vor 9, 9 vor 8, 8 vor 7, 7 vor 6, 6 vor 5, 5 vor 4, 4 vor 3 und 3 vor 2.

und

Mit zweiter Priorität nach Farben (Suit) und zwar Kreuz vor Pik, Pik vor Herz, Herz vor Karo.

Meine jetzige implementation sieht so aus:

@Override
public int compare(Card o1, Card o2) {
    if (o1.equals(o2))
        return 0;
    int comparedValue = Integer.compare(o1.getRank().ordinal(), o2.getRank().ordinal());
    if (comparedValue != 0)
        return comparedValue;
    comparedValue = Integer.compare(o1.getSuit().ordinal(), o2.getRank().ordinal());
    return comparedValue;
}

Nur hab ich da Bauchschmerzen. Erstens, wie geht man dort mit null um? Oder ist das egal?

Dann ist das mit der Ordnung so richtig? Also dass ich gucke, ob der Rank einen unterschied hat, wenn ja, dann return, wenn nicht, soll er die Farbe nehmen.

Technisch funktioniert der Code, mir geht's eher darum, obs semantisch korrekt ist und zur Aufgabe passt.

Dann halt wie man den Nullpointer verhindert. Also ob man eine Exception (in meinem fall Assert false, weil Exception noch verboten), oder ob man 0 oder Integer.max/min nimmt.

Dann noch ne frage am rand. Der obige Code sortiert falsch herum. Wie macht man das jetzt am besten. Ich hab einfach *=-1; gemacht, oder tauscht man die objekte als parameter? Oder wie macht man das elegant?

Computer, programmieren, Java, Informatik
Ich kann meinen Minecraft Server nicht mehr Joinen?

Hallo Leute, ich habe jetzt eine Zeit lang mit einem Freund Minecraft mit dem Modpack Eternal gespielt. Es lief alles über einen von mir erstellten Server von GPortal. Doch als ich gestern joinen wollte kam immer die Fehlermeldung: minecraft io.netty.channel.abstractchannel$annotatedconnectexception: Connection refused. Ich habe Versucht meinen Server neuzustarten oder ihn zu reparieren aber alles ohne Erfolg. Manchmal wenn ich den Server neustarte, und ich dem Server joinen will kommt nicht mehr die Fehlermeldung die ich oben angesprochen habe, nein da steht dann da immer: Server is still starting aber eig. sollte der Server schon gestartet sein. Aber auch nach einer halben Stunde warten steht es immer noch da. Dann habe ich versucht ihn nochmal zu starten und dann kam wieder die alte Fehlermeldung. Manchmal steht aber auch, wo man den Server auf dem man spielen will aussuchen kann, das der Server out of date ist und es ein Vanilla Server ist (großes V bei der Serverauswahl), obwohl ich ja mit Modpack spiele. Kann mir da bitte irgendwer helfen? Ich weiß wirklich nicht mehr weiter. Ich habe auch noch einige andere Sachen ausprobiert, zum Beispiel habe ich geeprüft ob Java auf der neusten Version ist,(habe ein Update gemacht) trotzdem funktioniert es nicht. Ich habe auch per Cmd mit Verschiedenen Commands versucht das Problem zu beheben (zb ipconfig/registerdns,..) wie in einem Youtube Video gezeigt aber auch das hilft nicht. Ich bitte um eure Hilfe ;)

PC, Server, Computer, Java, Gaming, Minecraft, Minecraft Server, Technologie, Serverprobleme, Spiele und Gaming
Wie schreibe ich das Programm weiter?

Hii, wie schreibe ich dieses Programm weiter, also wie setze ich jetzt die Rabatte ein?

Aufgabenstellung:

Schreiben Sie ein ausführbares Programm, das eine Pizzabestellung simuliert. 

Nach einer Begrüßung soll dem Benutzer ein Menü präsentiert werden, in dem 3 Optionen zur Auswahl stehen:

  1. Salami Pizza 5.50Euro
  2. Veggi Pizza 4.30Euro
  3. Ende

Bei Auswahl einer Pizza wird ein entsprechender Preis aufsummiert und das Menü erscheint erneut.

Dieser Vorgang wird wiederholt, bis der Benutzer die 3. Option "Ende" wählt.

Dann wird nach der Lieferentfernung in vollen km gefragt und folgendermaßen ein Rabatt berechnet:

  • 10 Prozent, wenn die Entfernung maximal 2km beträgt, weil der Lieferbote dann laufen kann
  • 10 Prozent, wenn die Entfernung mindestens 20km beträgt, weil die Pizza dann kalt ankommt
  • zusätzlich 10 Prozent, wenn die Bestellung einen Wert von 10Euro überschreitet
  • und zusätzlich 10 Prozent, wenn die Bestellung einen Wert von 20Euro überschreitet (zusätzlich also 20% Rabatt bei Bestellungen über 20€)

Zuletzt wird der endgültige Rabatt und der resultierende Preis präsentiert und das Programm endet.

Das was ich schon habe:

public class NeuPizza{
public static void main(String[] args) {
        
        float preisSalamiPizza = 5.50f;
        float preisVeggiPizza = 4.30f;
        
        System.out.println("Willkommen!");
        System.out.println("Bitte geben Sie Ihre Bestellung ein.");
        System.out.println("");
        
        System.out.println("1. Salami Pizza 5,50 Euro");       
        System.out.println("2. Veggi Pizza 4,30 Euro");
        System.out.println("3. Ende!");
        


    }}
Computer, programmieren, Java
Java Switch Case im Falle, dass alle "case"s falsch sind?

Ich habe ein paar if-else-Ausdrücke, die ich gut durch switch ersetzen könnte, jedoch möchte ich auch ein else-Statement behalten, d.h. wenn alle Bedingungen vorher unwahr sind - (wie) geht das?

String test = "2";
if (test.charAt(0) == 'a') {
 System.out.println("1");
} else if (test.charAt(0) == 'b'){
 System.out.println("2");
} else if (test.charAt(0) == 'c'){
 System.out.println("3");
} else if (test.charAt(0) == 'd'){
 System.out.println("4");
} else if (test.charAt(0) == 'e'){
 System.out.println("5");
} else {
 System.out.println("Nicht vorhanden"); 
}


String test = "2";
switch(test.charAt(0)){
  case 'a': System.out.println("1"); break; // if bzw. if else
  case 'b': System.out.println("2"); break; // if bzw. if else
  case 'c': System.out.println("3"); break; // if bzw. if else
  case 'd': System.out.println("4"); break; // if bzw. if else
  case 'e': System.out.println("5"); break; // if bzw. if else
  case test.charAt(0): System.out.println("Nicht vorhanden"); break; //else-Äquivalent
}

doch dann, selbst wenn ich test.charAt(0) in eine Variable extrahiere, erhalte ich:

"case expressions must be a constant statement".

Und das macht natürlich auch Sinn, dennoch wollte ich fragen, ob es eine Möglichkeit gibt, mit Switch-Cases eine Möglichkeit zu haben, wenn kein Fall korrekt ist. Und damit meine ich nicht, eine boolische Variable einzuführen, die dann in allen cases verändert wird.

Computer, programmieren, Java
Array in ein anderes Array absteigend sortieren - Java?

Hallo Zusammen,

ich würde gerne ein Array in ein anderes Array absteigend sortieren.

Wenn ich in der for-Schleife und auch im weiteren Verlauf immer den letzen Index, also hier 3 manuell eingebe, läuft mein Programm tadellos. Jedoch möchte ich nicht von einer bestimmten Array-Länge abhängig sein und deshalb die Abbruchbedingung "hoch.length" anstatt eines festen Indexes nutzen, damit ich das Array auch ggf. erweitern kann.

Hier habe ich aber irgendwo einen Fehler und finde einfach nicht warum ich einen "Index out of bound" Fehler in der kursiv markierten Zeile erhalte.

Kann mir vielleicht jemand sagen wo mein Fehler liegt?

Danke!

public static void main(String[] args) {
      //   Index   =            0,1,2,3
         int [] hoch = new int []{2,3,4,5};            
         // neues array "runter" erstellen mit der Länge von Array "hoch"
         int [] runter = new int [hoch.length];
         // Start bei 0, Ende bei hoch.length
         for(int i=0; i <= hoch.length; i++) {
         // Hilfsvariable "hilfe" einbauen     
         int hilfe;                                    
  // hoch.length ist mein letzter Durchgang, -1 da ich eine Position mehr habe als dass ich einen Index habe
         runter [i] = hoch [hoch.length -i -1];
         hilfe = runter [i];
         }     
         // Ausgabe
         System.out.println("Array hoch:" + " " + Arrays.toString(hoch));
         System.out.println("Array runter:" + " " + Arrays.toString(runter));
         }}
Computer, Schule, programmieren, Java, Array

Meistgelesene Beiträge zum Thema Java