如何在asp.net中检查字符串数组的条件

本文关键字:字符串 数组 条件 检查 asp net | 更新日期: 2023-09-27 18:14:40

我必须检查asp.net中字符串数组

的条件

条件是我可以有两个值360__image.jpgimage.jpg
我必须从条件

返回正确的值
  1. 如果字符串有360_image.jpg,我必须只返回image.jpg和切割360_
  2. 如果字符串是image.jpg,我必须返回相同的image.jpg

public string splitString(string str)
{
   string[] FileName = str.Split('_');   
   if (FileName[2] != "")
   {
       return FileName[2];
   }
   else
   {
        return FileName[0];
   }
}

上面代码的问题是我得到错误

Index was outside the bounds of the array

如何在asp.net中检查字符串数组的条件

在从数组中访问元素之前应该检查长度,这就是为什么您会得到异常,因为拆分可能导致两个元素的数组。

我不太确定你的要求,但我认为你可以简化你的方法:

public string splitString(string str)
{
    if (str.Contains("_")) //or check for 360__
        return str.Substring(str.LastIndexOf('_') + 1); 
    else
        return str;
}

您可以使用LastIndexOf:

public string splitString(string str)
{
    return str.Substring(str.LastIndexOf('_') + 1);
}

或者甚至使用LINQ Last:

public string splitString(string str)
{
    return str.Split('_').Last();
}

数组有2个元素,表示索引0和1。

但你已经把你的代码作为FileName[2]

第二个索引可能是错误的,这就是为什么会出现错误。可能是1.

试一试:

public string splitString(string str)
    {
        string[] FileName = str.Split('_');   
        if (FileName[1] != "")
        {
            return FileName[1];
        }
        else
        {
            return FileName[0];
        }
    }