किसी स्ट्रिंग में अंतिम विशिष्ट वर्ण निकालें c #


88

मैं WinForms c # का उपयोग करता हूं। मेरा स्ट्रिंग मान नीचे की तरह है,

string Something = "1,5,12,34,";

मुझे एक स्ट्रिंग में अंतिम अल्पविराम को हटाने की आवश्यकता है। तो मैं इसे कैसे हटा सकता हूं?


16
आपके पास ऐसा क्यों है string? मैं एक लूप के कारण मान लेता हूं, जो कॉमा को intएस तक पहुंचाता है । आप string.Join(",", ints)इसके बजाय उपयोग कर सकते हैं । यह पहली जगह में अल्पविराम से बचा जाता है।
टिम श्मेल्टर

जवाबों:


262

कोशिश करें string.TrimEnd():

Something = Something.TrimEnd(',');

5
यह सबसे अच्छा समाधान है क्योंकि यह उन सभी स्ट्रिंग्स के लिए काम करता है, जिनमें ऐसी परिस्थितियाँ शामिल हैं, जहाँ आप समय से पहले नहीं जानते हैं कि क्या स्ट्रिंग वास्तव में कॉमा में समाप्त होती है, या नहीं।
पूरब

6
यही कारण है कि मैं अभी भी उन चीजों के लिए समाधान खोजता हूं जो मैं खुद को आसानी से लिख सकता था। किसी और ने आमतौर पर इसे हल किया है। :)
dpberry178

1
तो एकल उद्धरण एक गलती नहीं थे। आज मैंने सीखा कि चार और स्ट्रिंग क्रमशः एकल और दोहरे उद्धरणों के साथ परिभाषित होते हैं।
egmfrs

20

किंग किंग का जवाब बिल्कुल सही है। साथ ही टिम श्मेल्टर की टिप्पणी भी आपके मामले में अच्छा सुझाव है।

लेकिन अगर आप वास्तव में एक स्ट्रिंग में अंतिम अल्पविराम को हटाना चाहते हैं, तो आपको अंतिम अल्पविराम का सूचकांक ढूंढना चाहिए और जैसे निकालना चाहिए;

string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));

आउटपुट होगा;

1,5,12,3412345

यहाँ ए demonstration

यह बहुत संभावना नहीं है कि आप इस तरह से चाहते हैं लेकिन मैं इसे इंगित करना चाहता हूं। और याद रखें, String.Removeविधि किसी भी वर्ण को मूल स्ट्रिंग में नहीं निकालती है, यह नया स्ट्रिंग लौटाता है।


5

प्रयत्न string.Remove();

string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);

3

ट्रिमएंड विधि एक इनपुट कैरेक्टर एरे लेती है न कि एक स्ट्रिंग। डॉट नेट पर्ल्स से नीचे दिए गए कोड , ट्राइएंड के समान कार्यक्षमता का प्रदर्शन करने का एक अधिक कुशल उदाहरण दिखाता है।

static string TrimTrailingChars(string value)
{
    int removeLength = 0;
    for (int i = value.Length - 1; i >= 0; i--)
    {
        char let = value[i];
        if (let == '?' || let == '!' || let == '.')
        {
            removeLength++;
        }
        else
        {
            break;
        }
    }
    if (removeLength > 0)
    {
        return value.Substring(0, value.Length - removeLength);
    }
    return value;
}

1

या आप पहले इसे चार ऐरे में बदल सकते हैं:

string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];

अब आपके पास प्रत्येक वर्ण है indexed:

SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','

इसके आसपास खेलें


1

नीचे कोशिश करें

Something..TrimEnd ( "," ToCharArray ()।);



0

जब आप अंत में रिक्त स्थान है। आप बेलियो का उपयोग कर सकते हैं।

ProcessStr = ProcessStr.Replace(" ", "");
Emails     = ProcessStr.TrimEnd(';');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.