-1

如何解决子字符串问题。我试图正确编码但不适合我。

文件名为 bad_filename.xml 或 good_filename.xml

我想要的是使用子字符串来导致应该删除 _filename.xml 的“坏”或“好”。这该怎么做?

来自:bad_filename.xml 或 good_filename.xml

to:坏的或好的

4

7 回答 7

2

试试这个

  string s = "bad_filename.xml";
  string sub = s.Substring(0, s.IndexOf("_"));
  string sub2 = string.Concat((s.TakeWhile(x => x != '_')));
  string sub3 = s.Split('_')[0];

我已经给出了三种方法选择你选择的任何一种

注意:方式(1)当字符串不包含时会抛出异常_您需要检查索引>-1

于 2013-09-05T08:02:26.013 回答
1
var result = filename.Split('_')[0];
于 2013-09-05T08:02:16.590 回答
1

试试这个,正如我在问题评论中提到的那样。

var result = filename.Split('_')[0];
于 2013-09-05T08:03:15.583 回答
1

使用Path类获取文件名并string.Split获取第一部分:

string fileNameWOE = Path.GetFileNameWithoutExtension("bad_filename.xml");
string firstPart = fileNameWOE.Split('_')[0];
于 2013-09-05T08:06:19.800 回答
0

试试这个

string input = "bad_filename.xml"   
string sub = input.Substring(0, input.IndexOf("_"));
Console.WriteLine("Substring: {0}", sub);
于 2013-09-05T08:05:28.810 回答
0

像这样做 :

string[] strArr = stringFileName.Split('_');

string[] strArr = bad_filename.xml.Split('_');
strArr[0] is "bad"
and
string[] strArr = good_filename.xml.Split('_');
strArr[0] is "good"
于 2013-09-05T08:07:46.557 回答
0

您可以将此代码用于子字符串。

   string a="bad_filename.xml ";
            int index=a.IndexOf('_');
            if (index != -1)
            {
                string filename = a.Substring(0,index);
            }

输出不好

于 2013-09-05T08:10:04.370 回答