C#中TrimEnd去除度符号失效问题求助
问题分析与解决方案
嘿,我来帮你弄明白为啥TrimEnd('°')没起作用~
核心原因:TrimEnd的工作逻辑你可能理解错了
TrimEnd(char)方法是从字符串的末尾开始,逐个检查字符,只要遇到你指定的字符(这里是'°')就移除,直到碰到第一个不是该字符的位置才停止。
看你的字符串:"+0°1,0'",它的最后一个字符是单引号',根本不是°,所以TrimEnd('°')从头到尾找不到任何可以移除的目标字符,自然返回和原字符串一模一样的结果啦。
正确提取度数部分的方法
如果你想拿到°前面的度数内容(也就是"+0"),可以试试这两种常用方法:
方法1:用IndexOf定位后截取
string txt = "+0°1,0'"; int degreeSymbolPos = txt.IndexOf('°'); if (degreeSymbolPos != -1) // 确保字符串里确实有°符号 { string degree = txt.Substring(0, degreeSymbolPos); // 此时degree的值就是"+0" }
方法2:用Split分割字符串
string txt = "+0°1,0'"; string[] splitParts = txt.Split('°'); if (splitParts.Length > 0) { string degree = splitParts[0]; // 同样能得到"+0" }
再补个TrimEnd的正确使用场景例子
要是你的字符串是"+0°°°"(末尾是连续的°),那TrimEnd('°')就会把末尾所有的°都去掉,返回"+0"——这才是它的正确打开方式哦。
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

