C# 从字符串中删除字符
我需要从字符串中修剪一个子字符串,如果该子字符串存在的话 具体地说,如果字符串是“MainGUI.exe”,那么我需要通过从字符串中修剪“.exe”使其成为“MainGUI”C# 从字符串中删除字符,c#,string,trim,C#,String,Trim,我需要从字符串中修剪一个子字符串,如果该子字符串存在的话 具体地说,如果字符串是“MainGUI.exe”,那么我需要通过从字符串中修剪“.exe”使其成为“MainGUI” line.Substring(0, line.Length - ".exe".Length); 我试过这个: String line = "MainGUI.exe"; char[] exe = {'e', 'x', 'e', '.'}; line.TrimEnd(exe); 这给了我“Ma
line.Substring(0, line.Length - ".exe".Length);
我试过这个:
String line = "MainGUI.exe";
char[] exe = {'e', 'x', 'e', '.'};
line.TrimEnd(exe);
这给了我“MainGui.exe”的正确答案,但对于像“MainGui.exe”这样的东西,它不起作用,给我“MainGui”而不是“MainGui”
我用的是C#。谢谢你的帮助 使用
System.IO
命名空间中的Path
静态类,它可以让您轻松地从文件名中删除扩展名和目录。您还可以使用它来获得扩展、完整路径等。它是一个非常方便的类,非常值得研究
var filename = Path.GetFileNameWithoutExtension(line);
给你“MainGui”,当然,这是假设你想修剪任何文件扩展名,或者你知道你的文件总是一个.exe文件,如果你只想修剪.exe文件的扩展名,而把它留给别人。您可以首先使用String.EndsWith()
或使用Path.GetExtension()
方法进行测试。我将使用而不是字符串操作来处理此问题
string line = “MainGUI.exe”;
string fileWithoutExtension = Path.GetFileNameWithoutExtension(line);
如果您只想在扩展名为.exe
时去掉它,您也可以检查它。以下内容将仅删除.exe的扩展名,但保留所有其他扩展名不变:
string ext = Path.GetExtension(line).ToLower();
string fileWithoutExtension = ext == ".exe"
? Path.GetFileNameWithoutExtension(line)
: line;
路径
类有一个 如果总是修剪“.exe”,则可以修剪掉最后4个字符,而不考虑字符串的其余部分
line.Substring(0, line.Length - ".exe".Length);
由于文件扩展名中没有点(.),因此可以安全地使用:
String line = "MainGUI.exe";
line = line.Substring(0, line.LastIndexOf('.'));
请注意,这将删除所有文件扩展名,而不仅仅是.exe。这可能不是你想要的。