[JAVA] [Android] Ajoutez une chaîne de caractères arbitraire au début de plusieurs lignes

Lors de l'implémentation de la fonction de citation de commentaire, je voulais parfois ajouter un caractère de citation (tel que ">") au début d'une ligne, c'est donc un mémo de ce code.

Chose que tu veux faire

cette

foo
bar
baz

↓ je veux faire ça

>foo
>bar
>baz

code

Un modèle qui travaille dur

Une méthode qui attribue un préfixe au début de chaque ligne

public String A(String text, String prefix) {
    String prefixedText = "";
    String newLineCode = "\r\n";
    String[] lines = text.split(newLineCode, 0);
    for (String line : lines) {
        prefixedText += prefix + line + newLineCode;
    }
    return prefixedText;
}

appel

String prefixedText = A(text, ">");

(Ajout) Motif utilisant la jointure

String newLineCode = "\r\n";
String prefixedText = prefix + String.join(newLineCode + prefix, text.split(newLineCode, 0));

Merci @Kilisame!

(Ajout) Modèles utilisant des expressions régulières

public String A(String text, String prefix) {
    return text.replaceAll("(?m)^.*$", prefix + "$0");
}

Merci @ saka1029!

Supplément

Il semble plus facile d'utiliser des expressions régulières.

Recommended Posts

[Android] Ajoutez une chaîne de caractères arbitraire au début de plusieurs lignes
[Ruby] Insérer, remplacer, détruire à la fin de la chaîne de caractères [b021]
[Supprimer la première lettre de la chaîne de caractères] Ruby
À propos de la troncature de String par le nombre d'octets sur Android
[Android] Quittez l'activité de la source de transition au moment de la transition d'écran
[Android Studio] Définir une image arbitraire pour l'arrière-plan de l'application [Java]
[Rails] Comment omettre l'affichage de la chaîne de caractères de la méthode link_to