【问题标题】:Trim characters from a string从字符串中修剪字符
【发布时间】:2012-06-27 16:42:41
【问题描述】:

如果存在子字符串,我需要从字符串中修剪子字符串。

具体来说,如果字符串是“MainGUI.exe”,那么我需要通过从字符串中修剪“.exe”将其变为“MainGUI”。

我试过这个:

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

这给了我“MainGui.exe”的正确答案,但是对于“MainGUIe.exe”之类的东西它不起作用,给我“MainGUI”而不是“MainGUIe”。

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

【问题讨论】:

    标签: c# string trim


    【解决方案1】:

    在System.IO 命名空间中使用Path 静态类,它可以让您轻松地从文件名中去除扩展名和目录。您还可以使用它来获取扩展名、完整路径等。这是一个非常方便的类,非常值得研究。

    var filename = Path.GetFileNameWithoutExtension(line);
    

    为您提供“MainGui”,这当然是假设您想要修剪任何文件扩展名,或者您知道您的文件将始终是 .exe 文件,如果您只想修剪 .exe 文件的扩展名,但是,把它留给其他人。您可以使用String.EndsWith() 或Path.GetExtension() 方法先进行测试。

    【讨论】:

      【解决方案2】:

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

      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。这可能是也可能不是你想要的。
      【解决方案3】:

      Path 类有一个GetFileNameWithoutExtension。

      【讨论】:

        【解决方案4】:

        如果您总是修剪“.exe”,则可以修剪最后 4 个字符,而不管字符串的其余部分。

        line.Substring(0, line.Length - ".exe".Length);
        

        【讨论】:

          【解决方案5】:
          string line = "MainGUI.exe";
          if (line.EndsWith(".exe"))
              line = line.Substring(0, line.Length - 4);
          

          【讨论】:

            【解决方案6】:

            由于没有文件扩展名中包含点 (.),因此您可以安全地使用它:

            String line = "MainGUI.exe";
            line = line.Substring(0, line.LastIndexOf('.'));
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-03-26
              • 2012-03-21
              • 2014-11-27
              • 2022-11-01
              • 1970-01-01
              • 1970-01-01
              • 2021-05-17
              • 1970-01-01
              相关资源
              最近更新 更多