मैं textInput का जिक्र नहीं कर रहा हूं। मेरा मतलब है कि एक बार जब आपके पास TextView में स्थिर पाठ (डेटाबेस कॉल से उपयोगकर्ता इनपुट किए गए डेटा (जिसे कैपिटल नहीं किया जा सकता है)), तो मैं यह कैसे सुनिश्चित कर सकता हूं कि वे पूंजीकृत हैं?
धन्यवाद!
मैं textInput का जिक्र नहीं कर रहा हूं। मेरा मतलब है कि एक बार जब आपके पास TextView में स्थिर पाठ (डेटाबेस कॉल से उपयोगकर्ता इनपुट किए गए डेटा (जिसे कैपिटल नहीं किया जा सकता है)), तो मैं यह कैसे सुनिश्चित कर सकता हूं कि वे पूंजीकृत हैं?
धन्यवाद!
जवाबों:
मैं मानक जावा स्ट्रिंग हेरफेर के माध्यम से इसे पूरा करने में सक्षम होना चाहिए, कुछ भी नहीं Android या TextView विशिष्ट।
कुछ इस तरह:
String upperString = myString.substring(0, 1).toUpperCase() + myString.substring(1).toLowerCase();
हालांकि इसे पूरा करने के लिए शायद एक मिलियन तरीके हैं। स्ट्रिंग प्रलेखन देखें ।
EDITED
मैंने जोड़ा.toLowerCase()
निम्नलिखित TextView पर लागू नहीं होता है, लेकिन EditText के साथ काम करता है; फिर भी, यह कीबोर्ड से दर्ज किए गए पाठ पर लागू होता है, न कि सेटटेक्स्ट () के साथ लोड किए गए पाठ पर। अधिक विशिष्ट होने के लिए, यह कीबोर्ड में कैप्स को चालू करता है, और उपयोगकर्ता उसकी इच्छा पर इसे ओवरराइड कर सकता है।
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()));
कोटलिन के लिए, बस कॉल करें
textview.text = string.capitalize()
आप
ग्रेड में अपाचे कॉमन्स लैंग को जैसे जोड़ सकते हैंcompile 'org.apache.commons:commons-lang3:3.4'
और उपयोग करें WordUtils.capitalizeFully(name)
भावी आगंतुकों के लिए, आप भी (सबसे अच्छा IMHO) आयात कर सकते हैं WordUtilसे Apacheऔर उपयोगी तरीकों का एक बहुत करने के लिए आप एप्लिकेशन की तरह जोड़ने 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();
}
परिणाम:
आई / पी brain ओ / पी ब्रेन
मैं / पी Brain and Health ओ / पी 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
आशा है कि यह आपकी मदद करेगा।
स्वीकृत उत्तर अच्छा है, लेकिन यदि आप इसे एंड्रॉइड के टेक्स्ट व्यू से मान प्राप्त करने के लिए उपयोग कर रहे हैं, तो यह जांचना अच्छा होगा कि क्या स्ट्रिंग खाली है। यदि स्ट्रिंग खाली है, तो यह एक अपवाद फेंक देगा।
private String capitizeString(String name){
String captilizedString="";
if(!name.trim().equals("")){
captilizedString = name.substring(0,1).toUpperCase() + name.substring(1);
}
return captilizedString;
}
कृपया एक कस्टम टेक्स्ट व्यू बनाएं और इसका उपयोग करें:
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);
}
}
यहाँ मैंने इस विषय पर एक विस्तृत लेख लिखा है, क्योंकि हमारे पास कई विकल्प हैं, Android में Capitalize First Letter of String
जावा में स्ट्रिंग के पहले अक्षर को कैपिटलाइज़ करने की विधि
public static String capitalizeString(String str) {
String retStr = str;
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1);
}catch (Exception e){}
return retStr;
}
कोटलिन में स्ट्रिंग के पहले अक्षर को कैपिटलाइज़ करने की विधि
fun capitalizeString(str: String): String {
var retStr = str
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1)
} catch (e: Exception) {
}
return retStr
}
XML विशेषता का उपयोग करना
या आप इस विशेषता को XML में TextView या EditText में सेट कर सकते हैं
android:inputType="textCapSentences"