How to remove first and last character of a string in C#?

后端 未结 4 1036
醉酒成梦
醉酒成梦 2021-02-12 13:38
String: \"hello to the very tall person I am about to meet\"

What I want it to become is this:

String: hello to the very tall person I          


        
相关标签:
4条回答
  • 2021-02-12 13:53

    C# 8: myString[1..^1]
    See Indices and ranges

    0 讨论(0)
  • 2021-02-12 13:55

    If you want to remove any first and last character from the string, then use Substring as suggested by Anish, but if you just want to remove quotes from beginning and the end, just use

    myStr = myStr.Trim('"');
    

    Note: This will remove all leading and trailing occurrences of quotes (docs).

    0 讨论(0)
  • 2021-02-12 14:01

    Use the String.Substring method.

    So, if your string is stored in a variable mystr, do as such:

    mystr = mystr.Substring(1, mystr.Length - 2);
    
    0 讨论(0)
  • 2021-02-12 14:03

    If you are trying to remove specific characters from a string, like the quotes in your example, you can use Trim for both start and end trimming, or TrimStart and TrimEnd if you want to trim different characters from the start and end. Pass these methods a character (or array of characters) that you want removed from the beginning and end of the string.

    var quotedString = "\"hello\"";
    var unQuotedString = quotedString.TrimStart('"').TrimEnd('"'); 
    
    // If the characters are the same, then you only need one call to Trim('"'):
    unQuotedString = quotedString.Trim('"');
    
    Console.WriteLine(quotedString);
    Console.WriteLine(unQuotedString);
    

    Output:

    "hello"

    hello

    Alternatively, you can use Skip and Take along with Concat to remove characters from the beginning and end of the string. This will work even for and empty string, saving you any worries about calculating string length:

    var original = "\"hello\"";
    var firstAndLastRemoved = string.Concat(original.Skip(1).Take(original.Length - 2));
    
    0 讨论(0)
提交回复
热议问题