我有这个字符串D:\ASN\Documents\ENU\LO\ANL\File\05003ede-59bf-45c6-bb57-a6111e9f18e0\linux-cheat-sheet.pdf,我想从上面的字符串中排除这个字符串D:\ASN\Documents\ENU\LO,然后在拆分后获得第一个字符串(在本例中是ANL)。
我尝试了这样的东西:
string fullpath = "D:\\ASN\\Documents\\ENU\\LO\\ANL\\File\\05003ede-59bf-45c6-bb57-a6111e9f18e0\\linux-cheat-sheet.pdf"
string[] sep = new string[]{"D:\\ASN\\Documents\\ENU\\LO"};
string [] result = fullpath.split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
{
Console.Write(s.Substring(s.IndexOf(@"\") + 1));
}但这给了我ANL\File\05003ede-59bf-45c6-bb57-a6111e9f18e0\linux-cheat-sheet.pdf"。相反,我只需要ANL。怎样才能做到这一点呢?有没有别的方法可以代替这种方式。
提亚
发布于 2016-06-22 18:13:43
var result = fullpath.Replace(samplePath, "").Split('\\')[1];您可以将第一部分(samplePath)替换为空,删除它(或者您可以使用子字符串获得fullPath的第二部分,计算samplePath的字符数),然后将结果拆分为'\',得到第二个匹配项,这是您预期的结果。
下面是一个工作版本:https://dotnetfiddle.net/k4tfGP
发布于 2016-06-22 18:09:34
当第二个字符串看到\时,您能对它进行拆分吗?
String sampleString = "ANL\File\05003ede-59bf-45c6-bb57-a6111e9f18e0\linux-cheat-sheet.pdf"";
String[] stringArray = sampleString.split("\");
String wantedString = stringArray[0];发布于 2016-06-22 18:13:43
这不是split()的目的。split()通常用于根据分隔符将字符串划分为多个部分。在您的例子中,您可能希望使用它通过拆分'\‘来分隔子文件夹。
但是您想要的是其他东西--删除一段文本。如果您知道文本将始终位于开头,请尝试以下操作:
string result = fullpath.Substring("D:\\ASN\\Documents\\ENU\\LO".Length);这将返回原始字符串,减去前X个字符,其中X恰好是要删除的字符串的长度。
https://stackoverflow.com/questions/37964805
复制相似问题