MST

星途 面试题库

面试题:C# 条件语句与循环结构的复杂逻辑实现

给定一个字符串数组,数组中的每个字符串可能是数字也可能是其他字符。请使用 C# 语言,通过合理运用条件语句和循环结构,编写一个方法,该方法要找出数组中所有连续的数字子串,并将这些数字子串转换为整数后求和。例如,数组为["abc", "123", "xyz", "45"],方法应返回 168(123 + 45)。要求代码中至少使用到 switch - case 条件语句、while 循环和 do - while 循环中的两种。
38.9万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试
using System;

public class Program
{
    public static int SumOfContinuousNumbers(string[] array)
    {
        int sum = 0;
        int i = 0;
        while (i < array.Length)
        {
            if (int.TryParse(array[i], out int number))
            {
                sum += number;
                int j = i + 1;
                do
                {
                    if (j < array.Length && int.TryParse(array[j], out int nextNumber))
                    {
                        sum += nextNumber;
                        j++;
                    }
                    else
                    {
                        break;
                    }
                } while (true);
                i = j;
            }
            else
            {
                i++;
            }
        }
        return sum;
    }
}

你可以使用以下方式调用这个方法:

class Test
{
    static void Main()
    {
        string[] array = { "abc", "123", "xyz", "45" };
        int result = Program.SumOfContinuousNumbers(array);
        Console.WriteLine(result); 
    }
}

代码说明

  1. SumOfContinuousNumbers 方法
    • 初始化一个变量 sum 用于存储总和,初始值为0。
    • 使用 while 循环遍历字符串数组 array
    • 使用 int.TryParse 方法尝试将当前字符串转换为整数,如果成功,则将其加到 sum 中。
    • 接着使用 do - while 循环,查找后续连续的数字字符串,并将它们转换为整数后加到 sum 中。
    • 非数字字符串直接跳过,继续遍历下一个字符串。
  2. Main 方法
    • 创建一个测试用的字符串数组。
    • 调用 SumOfContinuousNumbers 方法并输出结果。