8 votes

Android: Convertir la première lettre d'une chaîne en minuscule

Je suis à la recherche d'un moyen de convertir la première lettre d'une chaîne de caractères en minuscule. Le code que j'utilise extrait une chaîne de caractères aléatoire d'un tableau, affiche la chaîne dans une vue de texte, puis l'utilise pour afficher une image. Toutes les chaînes du tableau ont leur première lettre en majuscule mais les fichiers d'image stockés dans l'application ne peuvent pas avoir de lettres majuscules, bien sûr.

String source = "drawable/"
//monb est sélectionné de manière aléatoire à partir d'un tableau, ce n'est pas codé en dur comme ici
String monb = "Image";

//J'ai besoin de code ici qui prendra monb et le convertira de "Image" à "image"

String uri = source + monb;
    int imageResource = getResources().getIdentifier(uri, null, getPackageName());
    ImageView imageView = (ImageView) findViewById(R.id.monpic);
    Drawable image = getResources().getDrawable(imageResource);
    imageView.setImageDrawable(image);

Merci!

18voto

pents90 Points 1218
    if (monb.length() <= 1) {
        monb = monb.toLowerCase();
    } else {
        monb = monb.substring(0, 1).toLowerCase() + monb.substring(1);
    }

8voto

abdmob Points 734
public static String uncapitalize(String s) {
    if (s!=null && s.length() > 0) {
        return s.substring(0, 1).toLowerCase() + s.substring(1);
    }
    else
       return s;
}

2voto

Pratik Butani Points 4290

Google Guava est une bibliothèque java avec beaucoup d'utilitaires et de composants réutilisables. Cela nécessite que la bibliothèque guava-10.0.jar soit dans le classpath. L'exemple suivant montre l'utilisation de différentes conversions de CaseFormat.

import com.google.common.base.CaseFormat;

public class CaseFormatTest {

    /**
    * @param args
    */
    public static void main(String[] args) {

    String str = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, "studentName");
    System.out.println(str);  //STUDENT_NAME

    str = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "STUDENT_NAME");
    System.out.println(str);  //studentName

    str = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, "student-name");
    System.out.println(str);  //StudentName

    str = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "StudentName");
    System.out.println(str);  //student-name
  }

}

Résultat :

STUDENT_NAME
studentName
StudentName
student-name

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X