如何获得子字符串中字符的第一次出现
本文关键字:第一次 字符 何获得 字符串 | 更新日期: 2023-09-27 18:18:59
我试图获得第一个出现在我的子字符串起点:
string dir = Request.MapPath(Request.ApplicationPath) + "''App_GlobalResources''";
foreach (var file in Directory.EnumerateFiles(dir, "*.resx"))
{
ddlResources.Items.Add(new ListItem { Text = file.Substring(firstoccuranceof("."), file.LastIndexOf(".")), Value = file });
}
如果我执行file.Substring(file.IndexOf("."), file.LastIndexOf(".")),我会得到一个错误
要回答您的实际问题-您可以使用string.IndexOf
来获得字符的第一次出现。注意,您需要从LastIndexOf
调用中减去这个值,因为Substring
的第二个参数是要获取的字符数,而不是开始和结束索引。
…您可以使用Path来代替解析名称。GetFilenameWithoutExtension直接获取文件名
首次出现
String.IndexOf('.')
去年发生String.LastIndexOf('.')
使用IndexOf
和LastIndexOf
字符串方法获取"search"字符串第一次和最后一次出现的索引。您可以使用System.IO.Path.GetExtension()
、System.IO.Path.GetFileNameWithoutExtension()
和System.IO.Path.GetDirectoryName()
方法来解析路径。
string file = @"c:'csnet'info.sample.txt";
Console.WriteLine(System.IO.Path.GetDirectoryName(file)); //c:'csnet
Console.WriteLine(System.IO.Path.GetFileName(file)); //info.sample.txt
Console.WriteLine(System.IO.Path.GetFileNameWithoutExtension(file));//info.sample
Console.WriteLine(System.IO.Path.GetExtension(file)); //.txt
file.IndexOf(".")
应该得到第一次出现的"。"。如果没有找到,则返回-1。
我认为在您的特定情况下,您没有试图获得IndexOf…相反,您需要使用0,因为您正在尝试基于文件名创建一个密钥,如果理解正确的话:
`ddlResources.Items.Add(new ListItem(file.Substring(0, file.LastIndexOf(".")), file ));`
另外,你有'{}'在那里,如在new listtem{…}这也会导致语法错误…不管怎样,看一看……
因为最初的问题是用[regex]标记的,所以我将提供以下解决方案,但是使用。net简单解析路径的最佳答案不是使用regex。
//extracts "filename" from "filename.resx"
string name = Regex.Match("filename.resx", @"^(.*)'..+?$").Groups[1].Value;
为简单起见,请使用依赖于Path
类的答案。其他答案包含了这些信息。
给你
使用字符串变量类型
int index = str.IndexOf(@"'");
"C: ' '有人'用户桌面' aFolder ' someFile"
https://www.peachpit.com/articles/article.aspx?p=31938& seqNum = 12 #: ~:文本= % 20首先找到% 20 % 20 % 20,或者字符串% 20你% 20 % 20 % 20寻找。