首页 > 解决方案 > 用大写替换中间字母

问题描述

有下面的代码,它有一个函数,可以找到单词中间的字母(1或2个字符)并将它们变成大写,然后输出。

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(test("Rofl"));
        Console.WriteLine(test("Camel"));
        Console.WriteLine(test("R"));
    }

    public static String test(string value) {
        return value.Length % 2 == 0 
            ? value.Substring(value.Length / 2 - 1, 2).ToUpper()
            : value.Substring(value.Length / 2, 1).ToUpper();
    }
}

请告诉我,我怎样才能使单词完全派生,但中间的字母完全被大写字母取代?

有必要这样:

ROFl
CaMel
R

标签: c#string

解决方案


像这样的东西?不是最干净的方法。

public static string test(string value)
{
    if(string.IsNullOrEmpty(value)) return value;
    var array = value.ToCharArray();
    if (value.Length % 2 == 0)
    {
        array[value.Length / 2 - 1] = Char.ToUpper(array[value.Length / 2 - 1]);
        array[value.Length / 2] = Char.ToUpper(array[value.Length / 2]);
    }
    else
    {
        array[value.Length / 2] = Char.ToUpper(value[value.Length / 2]);
    }
    return new string(array);
}

推荐阅读