修剪字符串中的字符

nat*_*nat 5 c# string trim

如果存在子串,我需要修剪字符串中的子字符串.

具体来说,如果字符串是"MainGUI.exe",那么我需要通过从字符串中修剪".exe"来成为"MainGUI".

我试过这个:

     String line = "MainGUI.exe";
     char[] exe = {'e', 'x', 'e', '.'};
     line.TrimEnd(exe);
Run Code Online (Sandbox Code Playgroud)

这给了我"MainGui.exe"的正确答案,但对于像"MainGUIe.exe"这样的东西它不起作用,给我"MainGUI"而不是"MainGUIe".

我正在使用C#.谢谢您的帮助!

Jam*_*are 15

PathSystem.IO命名空间中使用静态类,它允许您轻松地从文件名中删除扩展和目录.你也可以使用它来获得扩展,完整路径等.这是一个非常方便的课程,值得深入研究.

var filename = Path.GetFileNameWithoutExtension(line);
Run Code Online (Sandbox Code Playgroud)

给你"MainGui",这当然是假设你想修剪任何文件扩展名,或者你知道你的文件总是一个.exe文件,如果你只想修剪.exe文件的扩展名,但是,留在别人身上.您可以先使用String.EndsWith()或使用该Path.GetExtension()方法进行测试.


Ree*_*sey 13

我会使用Path.GetFileNameWithoutExtension而不是字符串操作来处理这个问题.

string line = “MainGUI.exe”;
string fileWithoutExtension = Path.GetFileNameWithoutExtension(line);
Run Code Online (Sandbox Code Playgroud)

如果您只是想剥离扩展名.exe,那么您也可以检查它.以下内容仅剥离扩展名.exe,但保留所有其他扩展名:

string ext = Path.GetExtension(line).ToLower();
string fileWithoutExtension = ext == ".exe" 
                               ? Path.GetFileNameWithoutExtension(line) 
                               : line;
Run Code Online (Sandbox Code Playgroud)