我试图删除包含多个点的文件扩展名:
string a = "asdasdasd.asdas.adas.asdasdasdasd.edasdasd";
string b = a.Substring(a.LastIndexOf('.'), a.Length - a.LastIndexOf('.'));
string c = a.Replace(b, "");
Console.WriteLine(c);
有什么更好的方法吗?
发布于 2014-04-07 14:58:02
如果可以,只需使用Path.GetFileNameWithoutExtension
返回没有扩展名的指定路径字符串的文件名。
Path.GetFileNameWithoutExtension("asdasdasd.asdas.adas.asdasdasdasd.edasdasd");
使用一行代码,您可以获得相同的结果。
如果你想自己创造一个,为什么不直接用这个呢?
int index = a.LastIndexOf('.');
b = index == -1 ? a : a.Substring(0, index);
特别感谢“安东尼”和“电脑芯片”给我指出了我做过的一些错误,也许是糟糕的一天。
从0(开始)到最后一个点的所有内容,这意味着扩展的开始。
发布于 2014-04-07 15:00:48
在命名空间System.IO
中使用Path类。
Path.GetFileNameWithoutExtension(a);
发布于 2014-04-07 15:00:02
在您的代码中,您将得到扩展的分段,然后从原始代码中删除它。相反,您应该只需获得字符串的分段,而不需要扩展名。
string c = a.Substring(0, a.LastIndexOf('.'));
编辑:就像马可在我前面说的那样:D
https://codereview.stackexchange.com/questions/46559
复制相似问题