2011-09-23 18 views
7

Estoy buscando una forma de convertir la primera letra de una cadena en letra minúscula. El código que estoy utilizando extrae una cadena aleatoria de una matriz, la muestra en una vista de texto y luego la usa para mostrar una imagen. Todas las cadenas de la matriz tienen su primera letra en mayúscula, pero los archivos de imágenes almacenados en la aplicación no pueden tener mayúsculas, por supuesto.Android: Convertir la primera letra de la cadena en minúscula

String source = "drawable/" 
//monb is randomly selected from an array, not hardcoded as it is here 
String monb = "Picture"; 

//I need code here that will take monb and convert it from "Picture" to "picture" 

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); 

¡Gracias!

Respuesta

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

simple y eficaz! Gracias – cerealspiller

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

Google guayaba es una biblioteca Java con muchas utilidades y componentes reutilizables. Esto requiere que la biblioteca guava-10.0.jar esté en classpath. El siguiente ejemplo muestra el uso de varias conversiones 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 
    } 

} 

salida como:

STUDENT_NAME 
studentName 
StudentName 
student-name 
Cuestiones relacionadas