কোনও অ্যান্ড্রয়েড অ্যাপ্লিকেশনে টেক্সটভিউতে পাঠ্যের প্রথম অক্ষরটিকে কীভাবে মূলধন করা যায়


94

আমি হয় টেক্সটইনপুট উল্লেখ করছি না। আমি বোঝাতে চাইছি যে একবার আপনি কোনও টেক্সটভিউতে স্থির পাঠ্য (কোনও ডেটাবেস কল থেকে ব্যবহারকারীর ইনপুটড ডেটা (যা মূলধনযোগ্য নাও হতে পারে)) তৈরি হয়, আমি কীভাবে নিশ্চিত করতে পারি যে সেগুলি মূলধন হয়ে গেছে?

ধন্যবাদ!


4
ভবিষ্যতের দর্শনার্থীদের জন্য ... কোটলিনে কেবল "abcd" ব্যবহার করুন। ক্যাপিটালাইজ ())
অমিত টুমকুর

উত্তর:


186

আমার স্ট্যান্ডার্ড জাভা স্ট্রিং ম্যানিপুলেশনের মাধ্যমে এটি সম্পাদন করতে সক্ষম হওয়া উচিত, অ্যান্ড্রয়েড বা টেক্সটভিউ নির্দিষ্ট কিছু নয়।

কিছুটা এইরকম:

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

যদিও এটি সম্পাদন করার জন্য সম্ভবত এক মিলিয়ন উপায় রয়েছে। স্ট্রিং ডকুমেন্টেশন দেখুন ।

সম্পাদনা করুন আমি যোগ.toLowerCase()


13
কেবলমাত্র এটি লক্ষ করতে চেয়েছিলেন যে এটি ইংরেজির জন্য একটি ভাল সমাধান, তবে স্থানীয়করণের পক্ষে নয়।
বিলি লাজারো

71

নিম্নলিখিতটি টেক্সটভিউয়ের জন্য প্রযোজ্য নয়, তবে এডিট টেক্সট সহ কাজ করে; তারপরেও এটি কীবোর্ড থেকে প্রবেশ করা পাঠ্যের ক্ষেত্রে প্রযোজ্য, সেটটেক্সট () সহ লোড হওয়া পাঠ্য নয়। আরও সুনির্দিষ্ট হওয়ার জন্য, এটি কীবোর্ডের ক্যাপগুলি চালু করে এবং ব্যবহারকারী তার ইচ্ছায় এটিকে ওভাররাইড করতে পারে।

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

80
এটি টেক্সটভিউয়ের জন্য প্রযোজ্য নয়, কেবল সম্পাদনা পাঠ্য ক্ষেত্রে; তারপরেও, এটি কীবোর্ড থেকে প্রবেশ করা পাঠ্যের ক্ষেত্রে প্রযোজ্য, সেট টেক্সট () সহ লোড হওয়া পাঠ্য নয়। আরও সুনির্দিষ্ট হওয়ার জন্য, এটি কীবোর্ডে ক্যাপগুলি চালু করে এবং ব্যবহারকারী তার ইচ্ছায় এটিকে ওভাররাইড করতে পারে।
অ্যালেক্স কোহন


22

কোটলিনের জন্য, শুধু কল করুন

textview.text = string.capitalize()

4
আমি ভাবতাম এটি প্রতিটি শব্দের মূলধন তৈরি করবে তবে এটি কেবল প্রথম শব্দটির জন্যই কাজ করছে।
স্কুভা

আপনি যদি এটি বহুভাষিক অ্যাপ্লিকেশনটিতে ব্যবহার করেন, লোকেল পাস করা আরও ভাল করে তোলে।
ধর্মেন্দ্র প্রতাপ সিং

10

আপনি গ্রেডলে এপাচি কমন্স ল্যাং যুক্ত করতে পারেনcompile 'org.apache.commons:commons-lang3:3.4'

আর ব্যবহার করুন WordUtils.capitalizeFully(name)


4
তথ্য: ল্যাং 3 ওয়ার্ড ইউটিলস অবচিত হয়েছে, পরিবর্তে আপনার "org.apache.commons.text.WordUtils" ব্যবহার করা উচিত: commons.apache.org/proper/commons-text/javadocs/api-release/org/…
গভোর

4

ভবিষ্যতে দর্শক জন্য, আপনি (সেরা এই প্রোগ্রামটিতে) আমদানি করার জন্য WordUtilথেকে Apacheএবং দরকারী পদ্ধতির অনেক আপনার কাছে অ্যাপ্লিকেশানটি মত যোগ capitalizeযেমন এখানে দেখানো:

স্ট্রিংয়ে প্রতিটি শব্দের প্রথম অক্ষরকে কীভাবে মূলধন করা যায়


2

আমার পক্ষে কোনও কাজ করার নয়:

ফাংশন:

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

আই / পি brain And health থেকে ও / পি Brain And Health

আই / পি brain's Health থেকে ও / পি Brain's Health

আই / পি brain's Health and leg থেকে ও / পি Brain's Health And Leg

আশা করি এটি আপনাকে সহায়তা করবে।


2

গৃহীত উত্তরটি ভাল তবে আপনি যদি অ্যান্ড্রয়েডের কোনও পাঠ্য ভিউ থেকে মান পেতে এটি ব্যবহার করেন তবে স্ট্রিংটি খালি কিনা তা খতিয়ে দেখা ভাল। যদি স্ট্রিংটি খালি থাকে তবে এটি একটি ব্যতিক্রম ছুঁড়ে ফেলবে।

private String capitizeString(String name){
    String captilizedString="";
    if(!name.trim().equals("")){
       captilizedString = name.substring(0,1).toUpperCase() + name.substring(1);
    }
    return captilizedString;
}

2

কোটলিনের জন্য, আপনি যদি নিশ্চিত হতে চান যে ফর্ম্যাটটি "আআআআআআআআআ" আপনি ব্যবহার করতে পারেন:

myString.toLowerCase(Locale.getDefault()).capitalize()

1

দয়া করে একটি কাস্টম টেক্সটভিউ তৈরি করুন এবং এটি ব্যবহার করুন:

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

আমি কীভাবে এই কাস্টম টেক্সটভিউটিকে ক্রিয়াকলাপের নকশায় / খণ্ডগুলিতে ড্রাগ এবং ড্রপ ইউআই উপাদান হিসাবে উপস্থিত হতে পারি?
কোস্টানোস

0

এখানে আমি এই বিষয়ে একটি নিবন্ধ লিখেছি, যেমন আমাদের কাছে বেশ কয়েকটি বিকল্প রয়েছে, অ্যান্ড্রয়েডে ক্যাপিটালাইজ ফার্স্ট লেটার অফ স্ট্রিং

জাভাতে স্ট্রিংয়ের প্রথম চিঠি মূলধনের পদ্ধতি

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 এ টেক্সটভিউ বা সম্পাদনা পাঠ্যগুলিতে এই বৈশিষ্ট্যটি সেট করতে পারেন

android:inputType="textCapSentences"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.