导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

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

唄小白 add IT  2020-06-23 11:03:31
c# 字符串中有多个指定的字符“.”,且字符串长度不一,如何截取最后一个字符“.”前面的部分
例(这些字符串是从数据库字段获取的):
10.001
10.01.05
101.01.02
101.01.001
01.02.01.001
...全文
1535 点赞 收藏 12
写回复
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]
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.