修剪string中的最后一个字符
我有一个string说
"Hello! world!"
我想做一个修剪或删除取出! closures世界但不是closures你好。
"Hello! world!".TrimEnd('!');
阅读更多
编辑:
我在这类问题中已经注意到,所有人都build议删除给定string的最后一个字符。 但是这不符合Trim方法的定义。
修剪 – 从此实例的开头和结尾删除所有出现的空格字符。
MSDN剪裁
在这个定义下,只删除string中的最后一个字符是不好的解
所以如果我们要“修整string中的最后一个字符”,我们应该这样做
作为扩展方法的示例:
public static class MyExtensions { public static string TrimLastCharacter(this String str) { if(String.IsNullOrEmpty(str)){ return str; } else { return str.TrimEnd(str[str.Length - 1]); } } }
注意,如果你想删除所有相同的值的字符,即(!!!!)上面的方法删除所有存在的'!' 从string的末尾开始,但是如果你只想删除最后一个字符,你应该使用这个:
else { return str.Remove(str.Length - 1); }
String withoutLast = yourString.Substring(0,(yourString.Length - 1));
if (yourString.Length > 1) withoutLast = yourString.Substring(0, yourString.Length - 1);
要么
if (yourString.Length > 1) withoutLast = yourString.TrimEnd().Substring(0, yourString.Length - 1);
…如果你想从最后删除一个非空白字符。
string s1 = "Hello! world!"; string s2 = s1.Trim('!');
string helloOriginal = "Hello! World!"; string newString = helloOriginal.Substring(0,helloOriginal.LastIndexOf('!'));
修剪string中最后一个字符的另一个示例:
string outputText = inputText.Remove(inputText.Length - 1, 1);
你可以把它放到一个扩展方法,并防止它的空string等
string s1 = "Hello! world!" string s2 = s1.Substring(0, s1.Length - 1); Console.WriteLine(s1); Console.WriteLine(s2);
你也可以使用这个:
public static class Extensions { public static string RemovePrefix(this string o, string prefix) { if (prefix == null) return o; return !o.StartsWith(prefix) ? o : o.Remove(0, prefix.Length); } public static string RemoveSuffix(this string o, string suffix) { if(suffix == null) return o; return !o.EndsWith(suffix) ? o : o.Remove(o.Length - suffix.Length, suffix.Length); } }
尝试这个:
return( (str).Remove(str.Length-1) );
我使用TrimEnd写了一个扩展的path,因为我已经使用它内联,并且对它感到满意…即:
static class Extensions { public static string RemoveLastChars(this String text, string suffix) { char[] trailingChars = suffix.ToCharArray(); if (suffix == null) return text; return text.TrimEnd(trailingChars); } }
确保使用静态类将名称空间包含在类中; P和用法是:
string _ManagedLocationsOLAP = string.Empty; _ManagedLocationsOLAP = _validManagedLocationIDs.RemoveLastChars(",");
如果你想删除'!' 字符从一个特定的expression式(在你的情况“世界”),那么你可以使用这个正则expression式
string input = "Hello! world!"; string output = Regex.Replace(input, "(world)!", "$1", RegexOptions.Multiline | RegexOptions.Singleline); // result: "Hello! world"
$ 1特殊字符包含所有匹配的“世界”expression式,并用它来代替原来的“世界”! expression