You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用for循环和if语句返回字符串数组指定索引区间的所有子串?

解决字符串数组索引范围子串提取问题

原代码存在的问题

  • 变量类型错误:
    • string[] text 应改为 string text,因为"The brown fox jumps"是单个字符串,并非字符串数组
    • char split = " "; 应改为 char split = ' ';,char类型只能用单引号包裹单个字符
    • int cutFrom = '2'; 和 int cutTo = '4'; 错误使用字符赋值,字符'2'的ASCII值是50而非整数2,需直接写int cutFrom = 2;、int cutTo = 4;
  • 变量名不一致:循环中使用的parts未定义,实际拆分后的数组是splitText,会导致编译错误
  • 逻辑错误:原代码仅判断索引等于cutFrom的元素,且找到后直接return,只能返回单个元素,无法收集指定索引范围内的所有元素

修正后的代码

string text = "The brown fox jumps";
char split = ' ';
int cutFrom = 2;
int cutTo = 4;

string[] splitText = text.Split(split);
List<string> result = new List<string>();

// 先处理边界,避免cutTo超出数组最大索引导致越界
cutTo = Math.Min(cutTo, splitText.Length - 1);

for (int i = 0; i < splitText.Length; i++)
{
    // 判断当前索引是否在[cutFrom, cutTo]范围内
    if (i >= cutFrom && i <= cutTo)
    {
        result.Add(splitText[i]);
    }
}

// 返回包含目标子串的字符串数组
return result.ToArray();

代码说明

  • 用List<string>动态收集符合条件的元素,解决固定数组长度的限制
  • 增加Math.Min(cutTo, splitText.Length - 1)处理边界,避免输入的cutTo超出数组最大索引引发异常
  • 通过i >= cutFrom && i <= cutTo判断当前元素是否处于目标索引区间,符合条件则加入结果集合
  • 最终将List转为字符串数组返回,可得到索引2到4的所有单词:"brown"、"fox"、"jumps"

内容的提问来源于stack exchange,提问作者Newguy405

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:40:34