Java Integer compareUnsigned-Methode

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Methode compareUnsigned() der Klasse Integer wird verwendet, um den vorzeichenlosen Wert (unsigned value) von zwei Ganzzahlen zu vergleichen, um herauszufinden, welche von beiden größer ist. Die Methode gibt 0 zurück, wenn die vorzeichenlosen Werte beider Ganzzahlen gleich sind. Sie gibt 1 zurück, wenn der vorzeichenlose Wert der ersten Ganzzahl größer als der der zweiten ist. Sie gibt -1 zurück, wenn der vorzeichenlose Wert der ersten Ganzzahl kleiner als der der zweiten ist.

Erstellen einer Java-Klassen-Datei

Im Terminal erstellen Sie ein neues Verzeichnis für Ihr Java-Projekt. Beispielsweise:

mkdir project

Wechseln Sie in das Projektverzeichnis:

cd project

Erstellen Sie eine neue Java-Klassen-Datei mit dem Namen IntegerCompareUnsigned.java:

touch IntegerCompareUnsigned.java

Implementieren des Codes

Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei IntegerCompareUnsigned.java ein:

import java.lang.Integer;
import java.util.Scanner;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Enter first and second number: ");

	// Eingabe vom Benutzer entgegennehmen
        try {
            int n1 = sc.nextInt();
            int n2 = sc.nextInt();

	    // Aufruf der Methode compareUnsigned()
            int r = Integer.compareUnsigned(n1, n2);

	    // Ergebnis prüfen
            if(r > 0) {
                System.out.println("First number is greater");
            }
            else if(r < 0) {
                System.out.println("Second number is greater");
            }
            else {
                System.out.println("Both numbers are equal");
            }
        }
        catch(Exception e) {
            System.out.println("Invalid input!");
        }
    }
}

Speichern Sie die Datei und verlassen Sie den Editor.

Dieses Programm nimmt zwei Ganzzahlen vom Benutzer entgegen und verwendet die Methode compareUnsigned(), um ihre vorzeichenlosen Werte (unsigned values) zu vergleichen. Anschließend wird angezeigt, ob die erste Zahl größer als die zweite ist, die zweite Zahl größer als die erste ist oder ob die Zahlen gleich sind.

Kompilieren und Ausführen des Programms

Kompilieren Sie das Programm mit dem folgenden Befehl:

javac IntegerCompareUnsigned.java

Führen Sie das Programm mit dem folgenden Befehl aus:

java IntegerCompareUnsigned

Sie sollten die folgende Eingabeaufforderung sehen:

Enter first and second number:

Geben Sie zwei Zahlen ein - eine größer als 2147483647 und die andere kleiner oder gleich 2147483647. Dies liegt daran, dass der Java-int-Datentyp nur vorzeichenbehaftete 32-Bit-Werte (signed 32-bit values) aufnehmen kann - von -2147483648 bis 2147483647. Wenn Sie eine Zahl größer als 2147483647 eingeben, wird eine Fehlermeldung angezeigt.

Das Programm wird ausgeführt, und Sie sollten die folgende Ausgabe sehen:

First number is greater

Testen des Programms mit verschiedenen Werten

Sie können das Programm mit verschiedenen Werten testen und die Ausgabe betrachten.

Versuchen Sie, das Programm mit den folgenden Eingaben auszuführen:

Enter first and second number: -10 20
Enter first and second number: 500000000 -200000000
Enter first and second number: 0 0

Das Programm ändern

Ändern Sie das Programm so, dass es zwei Ganzzahlen als Befehlszeilenargumente nimmt, anstatt sie zur Laufzeit vom Benutzer einzulesen.

Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei IntegerCompareUnsigned.java ein:

import java.lang.Integer;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

	// Überprüfen, ob die richtige Anzahl von Argumenten angegeben wurde
        if(args.length!= 2) {
            System.out.println("Please provide two integer arguments!");
            return;
        }

	// Die Argumente als Ganzzahlen analysieren
        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);

	// Die Methode compareUnsigned() aufrufen
        int r = Integer.compareUnsigned(n1, n2);

	// Das Ergebnis prüfen
        if(r > 0) {
            System.out.println(n1 + " is greater than " + n2);
        }
        else if(r < 0) {
            System.out.println(n2 + " is greater than " + n1);
        }
        else {
            System.out.println(n1 + " and " + n2 + " are equal");
        }
    }
}

Speichern Sie die Datei und verlassen Sie den Editor.

Kompilieren und Ausführen des geänderten Programms

Kompilieren Sie das geänderte Programm mit dem folgenden Befehl:

javac IntegerCompareUnsigned.java

Führen Sie das geänderte Programm mit dem folgenden Befehl aus:

java IntegerCompareUnsigned 3000000000 200000000

Sie sollten die folgende Ausgabe sehen:

3000000000 is greater than 200000000

Ändern Sie das Programm, um es mit verschiedenen Eingaben zu testen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Methode compareUnsigned() der Integer-Klasse verwenden, um den vorzeichenlosen Wert (unsigned value) zweier Ganzzahlen zu vergleichen und herauszufinden, welche von beiden größer ist. Sie haben auch gelernt, wie Sie das Programm so ändern können, dass es zwei Ganzzahlen als Befehlszeilenargumente nimmt, anstatt sie zur Laufzeit vom Benutzer einzulesen.