c# 字符串中有多个指定的字符“.”,如何截取最后一个字符“.”前面的部分

唄小白 2020-06-23 11:03:31
c# 字符串中有多个指定的字符“.”,且字符串长度不一,如何截取最后一个字符“.”前面的部分
例(这些字符串是从数据库字段获取的):
10.001
10.01.05
101.01.02
101.01.001
01.02.01.001
...全文
2081 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧歌ing 2020-06-27
  • 打赏
  • 举报
回复
用split和substring都可以,但substring更快
wanghui0380 2020-06-24
  • 打赏
  • 举报
回复
引用 3 楼 Bridge_go 的回复:
骚操作
string s1 = System.IO.Path.GetFileNameWithoutExtension(ss);
呵呵,我正想这么回呢? 这个到不必纠结,最小功能点。就算规则变更也花不了你5分钟。只要你别到处写。 所以你要怕所谓的变更,那就弄成扩展方法。就是变更我们也只是改这个扩展方法
by_封爱 版主 2020-06-24
  • 打赏
  • 举报
回复
万一又有需求说. 截取倒数第二个.前面的数据呢 对吧
by_封爱 版主 2020-06-24
  • 打赏
  • 举报
回复
骚操作

var ss = "01.02.01.001";
var q = string.Join(".", ss.Split('.').Take(ss.Split('.').Length - 1));
Console.WriteLine(q);
正怒月神 2020-06-24
  • 打赏
  • 举报
回复
用substring,或者remove都可以。 重点其实,只是使用lastIndexOf,查找最后点的下标。
逐梦er 2020-06-24
  • 打赏
  • 举报
回复
学到了!!!
github_36000833 2020-06-24
  • 打赏
  • 举报
回复
引用 3 楼 Bridge_go 的回复:
骚操作
string s1 = System.IO.Path.GetFileNameWithoutExtension(ss);
;) 但不可太当真。 System.IO.Path.GetFileNameWithoutExtension("/a/b/c.d"); // 将得出c。
Bridge_go 2020-06-24
  • 打赏
  • 举报
回复
骚操作
string s1 = System.IO.Path.GetFileNameWithoutExtension(ss);
wilson1966 2020-06-24
  • 打赏
  • 举报
回复

            string s1 = "10.001";
            string s2 = s1.Substring(0,  s1.LastIndexOf('.'));
            MessageBox.Show(s2);
参考一下
github_36000833 2020-06-24
  • 打赏
  • 举报
回复
最后一个'.'的位置,可以用str.LastIndexOf('.'); 取前面的部分,可以用str.SubString(0, 长度); 长度可以从最后一个'.'的位置得到。
程序小黑 2020-06-24
  • 打赏
  • 举报
回复
引用 10 楼 程序小黑 的回复:
String message= “0.1”;
String substr = message.Split(‘.’)[0]
差不多就是这么个思路
程序小黑 2020-06-24
  • 打赏
  • 举报
回复
String message= “0.1”;
String substr = message.Split(‘.’)[0]

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧