如何解决子串问题。我试图正确编码但不适合我。
文件名是bad_filename.xml或good_filename.xml
我想要的是使用substring来导致“bad”或“good”,其中_filename.xml应该被删除。怎么做?
发件人:bad_filename.xml或good_filename.xml
to:bad or good
答案 0 :(得分: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
答案 1 :(得分:1)
var result = filename.Split('_')[0];
答案 2 :(得分:1)
试试这个,正如我在问题评论中提到的那样。
var result = filename.Split('_')[0];
答案 3 :(得分:1)
使用Path
类获取文件名,使用string.Split
获取第一部分:
string fileNameWOE = Path.GetFileNameWithoutExtension("bad_filename.xml");
string firstPart = fileNameWOE.Split('_')[0];
答案 4 :(得分:0)
试试这个
string input = "bad_filename.xml"
string sub = input.Substring(0, input.IndexOf("_"));
Console.WriteLine("Substring: {0}", sub);
答案 5 :(得分: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"
答案 6 :(得分:0)
您可以将此代码用于子字符串。
string a="bad_filename.xml ";
int index=a.IndexOf('_');
if (index != -1)
{
string filename = a.Substring(0,index);
}
输出不好