developer tip

Android 애플리케이션의 TextView에서 텍스트의 첫 글자를 대문자로 표시하는 방법

copycodes 2020. 11. 9. 08:14
반응형

Android 애플리케이션의 TextView에서 텍스트의 첫 글자를 대문자로 표시하는 방법


textInput도 언급하지 않습니다. 즉, TextView에 정적 텍스트가 있으면 (데이터베이스 호출에서 사용자 입력 데이터 (대문자로 표시되지 않을 수 있음)로 채워짐)가 대문자로 표시되는지 어떻게 확인할 수 있습니까?

감사!


표준 자바 문자열 조작을 통해이 작업을 수행 할 수 있어야합니다. Android 또는 TextView와는 관련이 없습니다.

다음과 같은 것 :

String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1);

이것을 달성하는 방법은 아마도 백만 가지가 있습니다. 문자열 문서를 참조하십시오 .


android:inputType="textCapSentences"

또는

TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

이것은 첫 글자를 대문자로합니다.

또는

compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app)

tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));

StringBuilder sb = new StringBuilder(name);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));  
return sb.toString();

Gradle에서 Apache Commons Lang 을 다음과 같이 추가 할 수 있습니다.compile 'org.apache.commons:commons-lang3:3.4'

그리고 사용 WordUtils.capitalizeFully(name)


Kotlin의 경우

textview.text = string.capitalize()

향후 방문자를 위해 다음 같이 WordUtil에서 가져 와서 Apache유용한 많은 방법을 추가 할 수도 있습니다 (최고의 IMHO) capitalize.

문자열에서 각 단어의 첫 문자를 대문자로 표기하는 방법


사용자 정의 TextView를 만들고 사용하십시오.

public class CustomTextView extends TextView {

    public CapitalizedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        if (text.length() > 0) {
            text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length());
        }
        super.setText(text, type);
    }
}

나를 위해 일하는 사람이 없습니다.

함수:

private String getCapsSentences(String tagName) {
    String[] splits = tagName.toLowerCase().split(" ");
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < splits.length; i++) {
        String eachWord = splits[i];
        if (i > 0 && eachWord.length() > 0) {
            sb.append(" ");
        }
        String cap = eachWord.substring(0, 1).toUpperCase() 
                + eachWord.substring(1);
        sb.append(cap);
    }
    return sb.toString();
}

결과:

I / P brain O / P 브레인

I / P Brain and Health O / P Brain And Health

I / P brain And health 에서 O / P로 Brain And Health

I / P brain's Health 에서 O / P로 Brain's Health

I / P brain's Health and leg 에서 O / P로 Brain's Health And Leg

이것이 당신을 도울 수 있기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/3419521/how-to-capitalize-the-first-letter-of-text-in-a-textview-in-an-android-applicati

반응형