textInput도 언급하지 않습니다. 즉, TextView에 정적 텍스트가 있으면 (데이터베이스 호출에서 사용자 입력 데이터 (대문자로 표시되지 않을 수 있음)로 채워짐)가 대문자로 표시되는지 어떻게 확인할 수 있습니까?
감사!
답변
표준 자바 문자열 조작을 통해이 작업을 수행 할 수 있어야합니다. Android 또는 TextView와는 관련이 없습니다.
다음과 같은 것 :
String upperString = myString.substring(0, 1).toUpperCase() + myString.substring(1).toLowerCase();
이를 수행하는 방법은 아마도 백만 가지가 있습니다. 문자열 문서를 참조하십시오 .
편집
했습니다..toLowerCase()
답변
다음은 TextView에 적용되지 않지만 EditText에서 작동합니다. 그럼에도 불구하고 setText ()로로드 된 텍스트가 아니라 키보드에서 입력 한 텍스트에 적용됩니다. 더 구체적으로 말하면 키보드에서 Caps를 켜고 사용자가 원하는대로이를 재정의 할 수 있습니다.
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();
답변
Kotlin의 경우
textview.text = string.capitalize()
답변
Gradle에서 Apache Commons Lang 을 다음과 같이 추가 할 수 있습니다.compile 'org.apache.commons:commons-lang3:3.4'
그리고 사용 WordUtils.capitalizeFully(name)
답변
향후 방문자를 위해 다음 과 같이 앱 WordUtil
에서 가져 와서 Apache
유용한 많은 방법을 추가 할 수도 있습니다 (최고의 IMHO) capitalize
.
답변
나를 위해 일하는 사람이 없습니다.
함수:
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
이것이 당신을 도울 수 있기를 바랍니다.