2011-09-23 5 views
7

문자열의 첫 번째 문자를 소문자로 변환하는 방법을 찾고 있습니다. 사용중인 코드는 배열에서 임의의 String을 가져 와서 문자열을 텍스트보기로 표시 한 다음 이미지를 표시하는 데 사용합니다. 배열의 모든 문자열은 첫 글자가 대문자로 표시되지만 앱에 저장된 이미지 파일에는 대문자를 사용할 수 없습니다.Android : 문자열의 첫 글자를 소문자로 변환하십시오.

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

감사!

답변

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

간단하고 효과적인! 감사 – 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

구글 구아바는 유틸리티 및 재사용 가능한 구성 요소의 많은 자바 라이브러리입니다. 이렇게하려면 라이브러리 guava-10.0.jar이 classpath에 있어야합니다. 다음은 다양한 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 
    } 

} 

출력처럼 :

STUDENT_NAME 
studentName 
StudentName 
student-name 
관련 문제