शीर्षक केस में प्रारूप स्ट्रिंग

वोट
24

मैं के लिए एक स्ट्रिंग स्वरूपण कैसे करूँ शीर्षक केस ?

03/08/2008 को 17:03
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


18 जवाब

वोट
16

यहाँ सी # में यह करने के लिए एक सरल स्थिर विधि है:

public static string ToTitleCaseInvariant(string targetString)
{
    return System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(targetString);
}
03/08/2008 को 17:05
का स्रोत उपयोगकर्ता

वोट
13

मैं अपने आप परिदृश्यों जहाँ मैं nitpickers के रोष को आकर्षित करने का जोखिम हो सकता हैं के सभी खाली स्थान के-पहले-शब्द upcasing से सावधान रहना होगा।

मैं कम से कम लेख और संयोजक की तरह अपवाद मामलों के लिए एक शब्दकोश को लागू करने पर विचार करेंगे। निहारना:

"सौंदर्य और जानवर"

और जब यह व्यक्तिवाचक संज्ञाओं के लिए आता है, बात ज्यादा भद्दा हो जाता है।

03/08/2008 को 20:10
का स्रोत उपयोगकर्ता

वोट
10

यहाँ एक पर्ल समाधान है http://daringfireball.net/2008/05/title_case

यहाँ एक रूबी समाधान है http://frankschmitt.org/projects/title-case

यहाँ एक रूबी एक लाइनर समाधान है: http://snippets.dzone.com/posts/show/4702

'some string here'.gsub(/\b\w/){$&.upcase}

क्या एक लाइनर कर रहा है इसके बारे में अपरकेस संस्करण के साथ प्रत्येक शब्द के पहले चरित्र का एक नियमित अभिव्यक्ति प्रतिस्थापन का उपयोग कर रहा है।

03/08/2008 को 19:22
का स्रोत उपयोगकर्ता

वोट
8

उस में capatilise करने के लिए, का कहना है कि सी - ascii कोड (का उपयोग http://www.asciitable.com/ ) चार के पूर्णांक मान खोजने के लिए और इसे से 32 घटाना।

यह एक गरीब समाधान अगर तुम कभी az और AZ परे पात्रों को स्वीकार करने की योजना है।

उदाहरण के लिए: ASCII 134: एक, ASCII 143: ए।
गणित का उपयोग करके आप हो जाता है: ASCII 102: च

पुस्तकालय कॉल का प्रयोग करें, यह न मानें कि तुम वापस कुछ उपयोगी पाने के लिए अपने पात्रों पर पूर्णांक गणित का उपयोग कर सकते हैं। यूनिकोड है मुश्किल

04/08/2008 को 22:16
का स्रोत उपयोगकर्ता

वोट
6

जावा में, आप निम्न कोड का उपयोग कर सकते हैं।

public String titleCase(String str) {
    char[] chars = str.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        if (i == 0) {
            chars[i] = Character.toUpperCase(chars[i]);
        } else if ((i + 1) < chars.length && chars[i] == ' ') {
            chars[i + 1] = Character.toUpperCase(chars[i + 1]);
        }
    }
    return new String(chars);
}
02/03/2016 को 10:32
का स्रोत उपयोगकर्ता

वोट
6

Silverlight में कोई है ToTitleCaseमें TextInfoवर्ग।

यहाँ एक सरल regex आधारित तरीका है।

नोट: सिल्वरलाइट precompiled regexes नहीं है, लेकिन मेरे लिए यह प्रदर्शन हानि कोई मुद्दा नहीं है।

    public string TitleCase(string str)
    {
        return Regex.Replace(str, @"\w+", (m) =>
        {
            string tmp = m.Value;
            return char.ToUpper(tmp[0]) + tmp.Substring(1, tmp.Length - 1).ToLower();
        });
    }
09/06/2010 को 05:24
का स्रोत उपयोगकर्ता

वोट
5

पर्ल में:

$string =~ s/(\w+)/\u\L$1/g;

यही कारण है कि यहां तक ​​कि पूछे जाने वाले प्रश्न में है।

29/09/2008 को 23:35
का स्रोत उपयोगकर्ता

वोट
5

भाषा का प्रयोग कर रहे एक समर्थित विधि / समारोह है तो बस का उपयोग करने वाले (सी # में के रूप में ToTitleCaseविधि)

यदि ऐसा नहीं होता है, तो आप निम्नलिखित की तरह कुछ करना चाहता हूँ होगा:

  1. स्ट्रिंग में पढ़ें
  2. पहला शब्द ले लो
  3. उस शब्द का पहला अक्षर कैपिटल 1
  4. आगे बढ़ो और अगले शब्द खोजने
  5. स्ट्रिंग के अंत में 3 पर जाएं कि नहीं, नहीं तो बाहर निकलने के

1 उस में भुनाने के लिए, कहते हैं, सी - का उपयोग ascii कोड चार के पूर्णांक मान खोजने के लिए और इसे से 32 घटाना।

वहाँ भी बहुत कुछ त्रुटि कोड (मान्य पत्र आदि सुनिश्चित) में जाँच करने की आवश्यकता होगी, और "कैपिटल बनाएँ" समारोह शब्द है कि जरूरत नहीं है के लिए जाँच करने के लिए "शीर्षक-केस योजना" पत्र पर किसी प्रकार का लागू करने के लिए की आवश्यकता होगी capatilised करने जा ( 'और', 'लेकिन' आदि यहाँ एक अच्छा योजना है)

03/08/2008 को 17:33
का स्रोत उपयोगकर्ता

वोट
5

किस भाषा में?

PHP में यह है:

ucwords ()

उदाहरण:

$HelloWorld = ucwords('hello world');
03/08/2008 को 17:12
का स्रोत उपयोगकर्ता

वोट
4

एक्सेल की तरह उचित:

public static string ExcelProper(string s) {
    bool upper_needed = true;
    string result = "";
    foreach (char c in s) {
        bool is_letter = Char.IsLetter(c);
        if (is_letter)
            if (upper_needed)
                result += Char.ToUpper(c);
            else
                result += Char.ToLower(c);
        else
            result += c;
        upper_needed = !is_letter;
    }
    return result;
}
02/03/2011 को 23:29
का स्रोत उपयोगकर्ता

वोट
2

http://titlecase.com/एक है एपीआई

09/06/2010 को 05:09
का स्रोत उपयोगकर्ता

वोट
1

यहाँ यह कैसे करना है की एक सरल उदाहरण है:

public static string ToTitleCaseInvariant(string str)
{
    return System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(str);
}
15/12/2017 को 11:54
का स्रोत उपयोगकर्ता

वोट
1

यहाँ पायथन में एक कार्यान्वयन है: https://launchpad.net/titlecase.py

और यह कार्यान्वयन कि मैं सिर्फ C ++ किया है की एक बंदरगाह: http://codepad.org/RrfcsZzO

19/11/2012 को 08:59
का स्रोत उपयोगकर्ता

वोट
1

वहाँ एक अंतर्निहित सूत्र है PROPER(n)Excel में।

काफी मैं इसे अपने आप को लिखने के लिए नहीं था देखने के लिए खुश था!

09/06/2010 को 05:07
का स्रोत उपयोगकर्ता

वोट
1

मुझे लगता है कि CultureInfo का उपयोग कर हमेशा विश्वसनीय नहीं है, मैन्युअल स्ट्रिंग हेरफेर करने के लिए इस सरल और आसान तरीका:

string sourceName = txtTextBox.Text.ToLower();
string destinationName = sourceName[0].ToUpper();

for (int i = 0; i < (sourceName.Length - 1); i++) {
  if (sourceName[i + 1] == "")  {
    destinationName += sourceName[i + 1];
  }
  else {
    destinationName += sourceName[i + 1];
  }
}
txtTextBox.Text = desinationName;
07/12/2009 को 17:56
का स्रोत उपयोगकर्ता

वोट
-1

यहाँ आप एक सी ++ संस्करण है। यह prononuns और पूर्वसर्ग की तरह गैर uppercaseable शब्द का एक सेट मिला है। हालांकि, मैं इस प्रक्रिया को स्वचालित करता है, तो आप महत्वपूर्ण ग्रंथों से निपटने के लिए कर रहे हैं की सिफारिश नहीं होगा।

#include <iostream>
#include <string>
#include <vector>
#include <cctype>
#include <set>

using namespace std;

typedef vector<pair<string, int> > subDivision;
set<string> nonUpperCaseAble;

subDivision split(string & cadena, string delim = " "){
    subDivision retorno;
    int pos, inic = 0;
    while((pos = cadena.find_first_of(delim, inic)) != cadena.npos){
        if(pos-inic > 0){
            retorno.push_back(make_pair(cadena.substr(inic, pos-inic), inic));
        }
        inic = pos+1;
    }
    if(inic != cadena.length()){
        retorno.push_back(make_pair(cadena.substr(inic, cadena.length() - inic), inic));
    }
    return retorno;
}

string firstUpper (string & pal){
    pal[0] = toupper(pal[0]);
    return pal;
}

int main()
{
    nonUpperCaseAble.insert("the");
    nonUpperCaseAble.insert("of");
    nonUpperCaseAble.insert("in");
    // ...

    string linea, resultado;
    cout << "Type the line you want to convert: " << endl;
    getline(cin, linea);

    subDivision trozos = split(linea);
    for(int i = 0; i < trozos.size(); i++){
        if(trozos[i].second == 0)
        {
            resultado += firstUpper(trozos[i].first);
        }
        else if (linea[trozos[i].second-1] == ' ')
        {
            if(nonUpperCaseAble.find(trozos[i].first) == nonUpperCaseAble.end())
            {
                resultado += " " + firstUpper(trozos[i].first);
            }else{
                resultado += " " + trozos[i].first;
            }
        }
        else
        {
            resultado += trozos[i].first;
        }       
    }

    cout << resultado << endl;
    getchar();
    return 0;
}
30/09/2008 को 00:27
का स्रोत उपयोगकर्ता

वोट
-1

पर्ल के साथ आप ऐसा कर सकता है:

my $tc_string = join ' ', map { ucfirst($\_) } split /\s+/, $string;
16/09/2008 को 12:11
का स्रोत उपयोगकर्ता

वोट
-1

एक पहले से तैयार समारोह का उपयोग कर के बिना, का बहुत आसान निम्न स्तर के एल्गोरिथ्म शीर्षक केस में एक स्ट्रिंग परिवर्तित करने के लिए:


convert first character to uppercase.
for each character in string,
    if the previous character is whitespace,
        convert character to uppercase.

यह asssumes "को अपरकेस में चरित्र बदल" है कि क्या करेंगे सही ढंग से किया जाए या नहीं चरित्र केस-संवेदी है की परवाह किए बिना (जैसे, '+')।

03/08/2008 को 17:25
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more