Java: Versuchen Sie, einen durch Kommas getrennten Formatierer selbst zu implementieren

Am Anfang

Siehe Einfache Möglichkeit, alle 3 Ziffern ein Komma zu setzen, z. B. Preisnotation "Wenn Sie Ihre eigene durch Kommas getrennte Logik schreiben, ohne das String # -Format oder das Zahlenformat zu verwenden, wie würden Sie sie implementieren?" Das hat mich interessiert, also habe ich versucht, es einfach umzusetzen

Implementierungsrichtlinie

Ich habe das Gefühl, ich kann eine Teilmenge von 3 Ziffern mit einem regulären Ausdruck erhalten und mit Reduzieren falten. ~~ Wenn Sie es mit tsubstring ausschneiden, scheint die Bedienung von Indizes problematisch zu sein ~~ Wenn die Anzahl der Zeichen kein Vielfaches von 3 ist, sollten Sie die vorherige Null zwangsweise eingeben

Ich habe versucht zu implementieren

MyFormatter.java


package formatter;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MyFormatter {
    public static void main(String[] args) throws Exception{
    	System.out.println(format("11"));
    	System.out.println(format("111"));
    	System.out.println(format("1111"));
    	System.out.println(format("11111"));
    	System.out.println(format("111111"));
    }	
    public static String format(String str) {
        Matcher matcher = Pattern.compile("(\\d{3})").matcher(makeStr(str));
        List<String> strs =new ArrayList<String>();
        //Entfernen Sie die vorherige 0
        if(matcher.find()) {
        	strs.add(Integer.parseInt(matcher.group()) + "");
        }
        while(matcher.find()) {
        	strs.add(matcher.group());
        }
        //,Es ist sauberer zu verwenden, um zu reduzieren
    	return strs
    			.stream()
    			.reduce((s,s1)-> s+","+s1)
    			.get();
    	
    }
    public static String makeStr(String str) {
    	if(str.length()%3 ==2)return "0" + str;
    	else if(str.length()%3 ==1)return "00" + str;
    	else return str;
    }
}

Ausführungsergebnis

11
111
1,111
11,111
111,111

Impressionen

Recommended Posts

Java: Versuchen Sie, einen durch Kommas getrennten Formatierer selbst zu implementieren
Erstellen Sie Ihre eigenen Java-Anmerkungen
Versuchen Sie, Android Hilt in Java zu implementieren
Erstellen Sie Ihre eigene Persistenz FW (Java)
Behandeln Sie Ihre eigenen Anmerkungen in Java
Versuchen Sie, Ihre eigene Objektorientierung zu organisieren
Verstehen Sie die Java-Oberfläche auf Ihre eigene Weise
Probieren Sie Java 8 Stream aus
Erstellen Sie Ihre eigene Android-App für das Java-Lernen
Versuchen Sie es mit Java 9
[Java] Sortieren Sie ArrayList nach Elementen Ihrer eigenen Klasse
Versuchen Sie, das Eratostenes-Sieb mithilfe der Java-Standardbibliothek zu implementieren
Es ist spät! Versuchen Sie, Android Notification in Java (Anfänger) zu implementieren.
Machen Sie Ihren eigenen Pomodoro
Versuchen Sie es mit dem Java-Rückgabewert
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
Es ist spät! Versuchen Sie, Android Work Manager in Java zu implementieren (Anfänger)
Lassen Sie uns die Signaturüberprüfung des Codes für elliptische Kurven in Java implementieren
Erstellen Sie mit Java Ihren eigenen einfachen Server und verstehen Sie HTTP
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit