C# 索引和长度必须引用字符串ASP.NET中的位置
我有办法C# 索引和长度必须引用字符串ASP.NET中的位置,c#,asp.net,substring,indexof,C#,Asp.net,Substring,Indexof,我有办法 public static string UrlImageName(string name) { if (name.IndexOf("_180x140") <= 0) { var extPos = name.LastIndexOf("."); return name.Substring(0, extPos) + "_180x140" + name.Substring(extPos, name.
public static string UrlImageName(string name)
{
if (name.IndexOf("_180x140") <= 0)
{
var extPos = name.LastIndexOf(".");
return name.Substring(0, extPos) + "_180x140" + name.Substring(extPos, name.Length);
}
return name;
}
公共静态字符串UrlImageName(字符串名称)
{
if(name.IndexOf(“_180x140”)String.Substring()
函数将startingIndex作为第一个参数,将提取的字符长度/数量作为第二个参数
替换此项:
return name.Substring(0, extPos) + "_180x140" +
name.Substring(extPos, name.Length);
为此:
return name.Substring(0, extPos.Length - extPos) + "_180x140" +
name.Substring(extPos, name.Length - extPos);
由于Substring
的第二个参数是长度,因此每次都会失败,除非extPos
为0:
name.Substring(extPos, name.Length);
将其更改为此,以便只选择句点之后的字符串部分
name.Substring(extPos + 1, name.Length - extPos - 1);
或者,如果要在结果中包含期间,请执行以下操作:
name.Substring(extPos, name.Length - extPos);
如果字符串中可能没有句点,您可能还需要额外的检查。extPos
是文件扩展名开始的位置。现在,如果要在扩展名之前插入该文件,可以使用不带长度的子字符串。
这将获取从extPos
位置开始的字符串的剩余部分,您不需要任何计算来读取扩展名
public static string UrlImageName(string name)
{
if (name.IndexOf("_180x140") < 0)
{
var extPos = name.LastIndexOf(".");
return name.Substring(0, extPos) + "_180x140" + name.Substring(extPos);
}
return name;
}
公共静态字符串UrlImageName(字符串名称)
{
if(name.IndexOf(“\u 180x140”)<0)
{
var extPos=name.LastIndexOf(“.”);
返回name.Substring(0,extPos)+“180x140”+name.Substring(extPos);
}
返回名称;
}
如果extPos
是,比方说5,并且字符串有10个字符,那么下一行将从索引5剪辑到15,这超出了范围
name.Substring(extPos, name.Length);
你应该这样做
name.Substring(extPos, name.Length - extPos);
或者,简单地说
name.Substring(extPos);
我想你在找我
返回一个新字符串,其中在该实例中的指定索引位置插入了指定字符串
所以简单地使用
return name.Insert(extPos, "_180x140");
然而,根据您的错误是有关使用
return name.Substring(0, extPos) + "_180x140" + name.Substring(extPos);
请提供完整的错误。请下次做一些研究。已经有一个与您的标题相同的问题。我已经尝试过了,但没有任何帮助。谢谢大家…您真的帮助我了解了我需要从www.ua/Content/images/ik-main-page/Catalog.png到www.ua/Content/images/ik-main-page/catalog180x140.png
return name.Substring(0, extPos) + "_180x140" + name.Substring(extPos);