Heim > Java > javaLernprogramm > Versuchen Sie dies als Lambda-Ausdruck als Argument

Versuchen Sie dies als Lambda-Ausdruck als Argument

Barbara Streisand
Freigeben: 2025-01-12 07:10:42
Original
540 Leute haben es durchsucht

Lambda-Ausdruckskonzept als Argument:

  • Ein Lambda-Ausdruck kann als Argument in Methoden übergeben werden, die kompatible Zieltypen akzeptieren.
  • Dies ist nützlich, da Sie damit ausführbaren Code als Argument übergeben können, wodurch der Code aussagekräftiger wird.

Beispielziel:

  • Erstellen Sie mithilfe von Lambda-Ausdrücken Funktionen zur Zeichenfolgenmanipulation (invertieren Sie Buchstaben, kehren Sie die Groß-/Kleinschreibung um und ersetzen Sie Leerzeichen durch Bindestriche).
  • Diese Ausdrücke werden an die Methode changeStr() übergeben, die die Funktionen anwendet und das Ergebnis zurückgibt.

Funktionale Schnittstellenstruktur:

  • Definieren Sie die StringFunc-Schnittstelle mit einer Methode func(String str), die einen String akzeptiert und zurückgibt.

Definition der changeStr()-Methode:
Die Methode changeStr() benötigt zwei Parameter:
Ein Parameter vom Typ StringFunc (funktionale Schnittstelle).
Ein zu manipulierender String.
Die Methode wendet die Schnittstellenfunktion auf den String an und gibt das Ergebnis zurück.

Verwendung des Lambda-Ausdrucks:
Beispiel 1: Lambda-Ausdruck, der die Zeichen einer Zeichenfolge umkehrt und sie der Umkehrvariablen zuweist.

Übergibt den Lambda-Ausdruck an changeStr(), um die Zeichenfolge umzukehren.

Beispiel 2: Lambda-Ausdruck, der Leerzeichen durch Bindestriche ersetzt und direkt an changeStr() übergeben wird.

Beispiel 3:Block-Lambda-Ausdruck, der die Groß-/Kleinschreibung von Buchstaben in einer Zeichenfolge umkehrt und auch direkt an changeStr() übergeben wird.

Vollständiges Codebeispiel:
Im Folgenden finden Sie den vollständigen Code, der zeigt, wie Lambda-Ausdrücke an die Methode changeStr() übergeben werden:

interface StringFunc {
    String func(String str);
}

class LambdaArgumentDemo {
    static String changeStr(StringFunc sf, String s) {
        return sf.func(s);
    }

    public static void main(String args[]) {
        String inStr = "Lambda Expressions Expand Java";
        String outStr;
        System.out.println("Here is input string: " + inStr);

        // Expressão lambda para inverter a string
        StringFunc reverse = (str) -> {
            String result = "";
            for (int i = str.length() - 1; i >= 0; i--)
                result += str.charAt(i);
            return result;
        };

        // Passando a expressão lambda 'reverse' para o método
        outStr = changeStr(reverse, inStr);
        System.out.println("The string reversed: " + outStr);

        // Expressão lambda para substituir espaços por hífens
        outStr = changeStr((str) -> str.replace(' ', '-'), inStr);
        System.out.println("The string with spaces replaced: " + outStr);

        // Expressão lambda para inverter a caixa das letras
        outStr = changeStr((str) -> {
            String result = "";
            char ch;
            for (int i = 0; i < str.length(); i++) {
                ch = str.charAt(i);
                if (Character.isUpperCase(ch))
                    result += Character.toLowerCase(ch);
                else
                    result += Character.toUpperCase(ch);
            }
            return result;
        }, inStr);
        System.out.println("The string in reversed case: " + outStr);
    }
}

Nach dem Login kopieren

Erwartete Ausgabe:

Here is input string: Lambda Expressions Expand Java
The string reversed: avaJ dnapxE snoisserpxE adbmaL
The string with spaces replaced: Lambda-Expressions-Expand-Java
The string in reversed case: lAMBDA eXPRESSIONS eXPAND jAVA

Nach dem Login kopieren

Beobachtungen:
Die direkte Übergabe von Lambda-Ausdrücken als Argumente an Methoden erhöht die Flexibilität und Lesbarkeit des Codes.
Der Lambda-Ausdruck, der die Groß-/Kleinschreibung von Buchstaben umkehrt, ist komplexer, kann aber dennoch direkt an die Methode übergeben werden. Im Allgemeinen werden komplexere Lambdas besser Variablen zugewiesen.

Tente Isto asse uma expressão lambda como argumento

Das obige ist der detaillierte Inhalt vonVersuchen Sie dies als Lambda-Ausdruck als Argument. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage