Heim > Java > javaLernprogramm > Hauptteil

Java-Lernreise

Susan Sarandon
Freigeben: 2024-10-19 18:20:02
Original
332 Leute haben es durchsucht

Java Learning Journey

Ich habe kürzlich Java durch die Übungen in [https://exercism.org/tracks/java/exercises] gelernt. Mein aktueller Fortschritt liegt bei 13 von insgesamt 148 Übungen. Ich möchte gerne teilen, was ich gelernt habe.

Dieser Beitrag stellt mein Verständnis über .split(), .trim(), .isDigit(), .isLetter(), Comparable, benutzerdefinierte Java-Ausnahmen und Schnittstelle vor.

1) .split()

Definition: Die .split()-Methode unterteilt String basierend auf dem Trennzeichen [1] in ein Array.

Syntax:

public String[] split(String regex, int limit)
Nach dem Login kopieren
Nach dem Login kopieren

Parameter:

  • Regex: (erforderliches Feld) Muster des Trennzeichens
  • Limit: (optionales Feld) maximale Länge des zurückgegebenen Arrays

Beispiel:

public class Main{

    public void getProductPrice(String products){
        double totalPrice = 0.0;
        StringBuilder priceDetails = new StringBuilder();

        String[] singleProduct = products.split("; ");

        for(int i = 0; i < singleProduct.length; i++){
            String[] productInfo = singleProduct[i].split(", ");
            totalPrice += Double.parseDouble(productInfo[2]);

            priceDetails.append(productInfo[2]);
            if(i < singleProduct.length - 1){
                priceDetails.append(" + ");
            }
        }

        System.out.println(priceDetails + " = " + totalPrice);
    }

    public static void main(String arg[]){
        Main obj = new Main();
        obj.getProductPrice("1, dragonfruit, 12.50; 2, guava, 23.45; 3, avocado, 395.67");
    }

}
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

12.50 + 23.45 + 395.67 = 431.62
Nach dem Login kopieren
Nach dem Login kopieren

2) .trim()

Definition: Die .trim()-Methode entfernt Leerzeichen an beiden Enden einer Zeichenfolge [2].

Syntax:

public String trim()
Nach dem Login kopieren
Nach dem Login kopieren

Parameter:

  • kein Parameter

Beispiel:

public class Main{
    public static void main(String args[]){
        String str = "   You can do it!   ";
        System.out.println(str);
        System.out.println(str.trim());
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

   You can do it!   
You can do it!
Nach dem Login kopieren
Nach dem Login kopieren

3) .isDigit()

Definition: Die Methode .isDigit() bestimmt, ob ein Zeichen eine Ziffer ist oder nicht [3].

Syntax:

public static boolean isDigit(char ch)
Nach dem Login kopieren
Nach dem Login kopieren

Parameter:

  • ch: (erforderliches Feld) der zu testende Zeichenwert

Beispiel:

public class Main{

    // return true when the given parameter has a digit
    public boolean searchDigit(String str){
        for(int i = 0; i < str.length(); i++){
            // charAt() method returns the character at the specified index in a string
            if(Character.isDigit(str.charAt(i))){
                return true;
            }
        }
        return false;
    }

    // print digit index and value
    public void digitInfo(String str){
        for(int i = 0; i < str.length(); i++){
            if(Character.isDigit(str.charAt(i))){
                System.out.println("Digit: " + str.charAt(i) + " found at index " + i);
            }
        }
    }

    public static void main(String args[]){
        Main obj = new Main();
        String[] strList = {"RT7J", "1EOW", "WBJK"};

        for(String str : strList){
            if(obj.searchDigit(str)){
                obj.digitInfo(str);
            }else{
                System.out.println("No digit");
            }
        }

    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

Digit: 7 found at index 2
Digit: 1 found at index 0
No digit
Nach dem Login kopieren

4) .isLetter()

Definition: Die Methode .isLetter() bestimmt, ob ein Zeichen ein Buchstabe ist oder nicht [4].

Syntax:

public static boolean isLetter(char ch)
Nach dem Login kopieren

Parameter:

  • ch: (erforderliches Feld) der zu testende Zeichenwert

Beispiel:

public class Main{

    // check whether phoneNum has letter
    public void searchLetter(String phoneNum){
        boolean hasLetter = false;

        for(int i = 0; i < phoneNum.length(); i++){
            if(Character.isLetter(phoneNum.charAt(i))){
                hasLetter = true;
                // return letter value and index
                System.out.println(phoneNum + " has letter '" + phoneNum.charAt(i) + "' at index " + i);
            }
        }

        // phone number is valid when no letter
        if(!hasLetter){
            System.out.println(phoneNum + " is valid");
        }

        System.out.println();
    }

    public static void main(String args[]){
        Main obj = new Main();
        String[] phoneNum = {"A0178967547", "0126H54786K5", "0165643484"};

        for(String item: phoneNum){
            obj.searchLetter(item);
        }
    }
}
Nach dem Login kopieren

Ausgabe:

A0178967547 has letter 'A' at index 0

0126H54786K5 has letter 'H' at index 4
0126H54786K5 has letter 'K' at index 10

0165643484 is valid
Nach dem Login kopieren

5) Vergleichbar

Definition: Das Vergleichbare Die Schnittstelle wird verwendet, um eine natürliche Reihenfolge für eine Sammlung von Objekten zu definieren, und sie sollte in der Klasse der verglichenen Objekte implementiert werden [5]. Der Typparameter T stellt den Typ der Objekte dar, die verglichen werden können.

Beispiel:

// file: Employee.java
public class Employee implements Comparable<Employee>{
    private String email;
    private String name;
    private int age;

    public Employee(String email, String name, int age){
        this.email = email;
        this.name = name;
        this.age = age;
    }

    // The Comparable interface has a method called compareTo(T obj). 
    // This method helps decide how to order objects, so they can be sorted in a list
    @Override
    public int compareTo(Employee emp){
        // compare age: 
        // return this.age - emp.age;
        // (this.age - emp.age) = negative value means this.age before emp.age; 
        // (this.age - emp.age) = positive means this.age after emp.age

        // compare email:
        return this.email.compareTo(emp.email);
    }

    @Override
    public String toString(){
        return "[email=" + this.email + ", name=" + this.name + ", age=" + this.age +"]";
    }
}
Nach dem Login kopieren
// file: Main.java
import java.util.Arrays;

public class Main {
    public static void main(String args[]){
        Employee[] empInfo = new Employee[3];
        empInfo[0] = new Employee("joseph@gmail.com", "Joseph", 27);
        empInfo[1] = new Employee("alicia@gmail.com", "Alicia", 30);
        empInfo[2] = new Employee("john@gmail.com", "John", 24);

        Arrays.sort(empInfo);
        System.out.println("After sorting:\n" + Arrays.toString(empInfo));
    }
}
Nach dem Login kopieren

Ausgabe:

After sorting:
[[email=alicia@gmail.com, name=Alicia, age=30], [email=john@gmail.com, name=John, age=24], [email=joseph@gmail.com, name=Joseph, age=27]]
Nach dem Login kopieren

6) Benutzerdefinierte Java-Ausnahmen

Definition: Eine benutzerdefinierte Java-Ausnahme ist eine benutzerdefinierte Ausnahme, die ein Entwickler zur Behandlung spezifischer Fehlerbedingungen erstellt [6].

Beispiel:

public String[] split(String regex, int limit)
Nach dem Login kopieren
Nach dem Login kopieren
public class Main{

    public void getProductPrice(String products){
        double totalPrice = 0.0;
        StringBuilder priceDetails = new StringBuilder();

        String[] singleProduct = products.split("; ");

        for(int i = 0; i < singleProduct.length; i++){
            String[] productInfo = singleProduct[i].split(", ");
            totalPrice += Double.parseDouble(productInfo[2]);

            priceDetails.append(productInfo[2]);
            if(i < singleProduct.length - 1){
                priceDetails.append(" + ");
            }
        }

        System.out.println(priceDetails + " = " + totalPrice);
    }

    public static void main(String arg[]){
        Main obj = new Main();
        obj.getProductPrice("1, dragonfruit, 12.50; 2, guava, 23.45; 3, avocado, 395.67");
    }

}
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

12.50 + 23.45 + 395.67 = 431.62
Nach dem Login kopieren
Nach dem Login kopieren

7) Schnittstelle

Schnittstellen in Java ermöglichen es Benutzern, dieselbe Methode über verschiedene Klassen hinweg aufzurufen, wobei jede ihre eigene Logik implementiert [7]. Im folgenden Beispiel wird die Methode berechnePrice() in verschiedenen Klassen wie Fruit und DiscountFruit aufgerufen, wobei jede Klasse ihre eigene einzigartige Berechnungslogik anwendet.

Beispiel:

public String trim()
Nach dem Login kopieren
Nach dem Login kopieren
public class Main{
    public static void main(String args[]){
        String str = "   You can do it!   ";
        System.out.println(str);
        System.out.println(str.trim());
    }
}
Nach dem Login kopieren
Nach dem Login kopieren
   You can do it!   
You can do it!
Nach dem Login kopieren
Nach dem Login kopieren
public static boolean isDigit(char ch)
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe:

public class Main{

    // return true when the given parameter has a digit
    public boolean searchDigit(String str){
        for(int i = 0; i < str.length(); i++){
            // charAt() method returns the character at the specified index in a string
            if(Character.isDigit(str.charAt(i))){
                return true;
            }
        }
        return false;
    }

    // print digit index and value
    public void digitInfo(String str){
        for(int i = 0; i < str.length(); i++){
            if(Character.isDigit(str.charAt(i))){
                System.out.println("Digit: " + str.charAt(i) + " found at index " + i);
            }
        }
    }

    public static void main(String args[]){
        Main obj = new Main();
        String[] strList = {"RT7J", "1EOW", "WBJK"};

        for(String str : strList){
            if(obj.searchDigit(str)){
                obj.digitInfo(str);
            }else{
                System.out.println("No digit");
            }
        }

    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Referenz

[1] JavaRush, Split-Methode in Java: String in Teile aufteilen, 8. August 2023

[2] W3Schools, Java String trim() Methode

[3] GeeksforGeeks, Character isDigit()-Methode in Java mit Beispielen, 17. Mai 2020

[4] Tutorialspoint, Java – Character isLetter()-Methode

[5] Beispiel für DigitalOcean, Comparable und Comparator in Java, 4. August 2022

[6] Shiksha, Understanding User Defined Exception in Java, 25. April 2024

[7] Scientech Easy, Verwendung der Schnittstelle in Java mit Beispiel, 9. Juli 2024

Das obige ist der detaillierte Inhalt vonJava-Lernreise. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!