首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LowerCase和UpperCase交替c#

LowerCase和UpperCase交替c#
EN

Stack Overflow用户
提问于 2016-03-28 00:20:30
回答 2查看 7.6K关注 0票数 0

我需要转换一个短语词大写和小写连续(交替)。

举例说明。

输入:

the girl is pretty.

输出:

tHe GiRl Is PrEtTy

我尝试了下面的代码,但它只转换了第一个字母:

代码语言:javascript
复制
char[] array = texto.ToCharArray();
if (array.Length >= 1)
{
    if (char.IsLower(array[0]))
    {
        array[0] = char.ToUpper(array[0]);
    }
}
for (int i = 1; i < array.Length; i++)
{
    if (array[i - 1] == ' ')
    {
        if (char.IsLower(array[i]))
        {
            array[i] = char.ToUpper(array[i]);
        }
    }
}
return new string(array);

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-28 00:30:19

使用LINQ的高级解决方案:

代码语言:javascript
复制
string someString = "the girl is pretty";
string newString = string.Concat(
    someString.ToLower().AsEnumerable().Select((c, i) => i % 2 == 0 ? c : char.ToUpper(c)));

这基本上可以做到以下几点:

  1. 将字符串转换为小写。
  2. 对每个字符进行迭代。
  3. 将第二个字符转换为大写。
  4. 将这些字符加入到一个字符串中。

一个更“经典”的解决方案可能如下所示:

代码语言:javascript
复制
string someString = "the girl is pretty";

StringBuilder sb = new StringBuilder();
bool uppercase = false;
foreach (char c in someString)
{
    if (uppercase)
        sb.Append(char.ToUpper(c));
    else
        sb.Append(char.ToLower(c));

    uppercase = !uppercase;
}

string newString = sb.ToString();
票数 4
EN

Stack Overflow用户

发布于 2017-04-24 09:16:49

poke的回答是正确的,但是它包括了交替情况下的空格。我对前面的答案做了一些修改,它忽略了字符串的空格。

代码语言:javascript
复制
string someString = "the girl is pretty";
string space = " ";

char[] str = someString.ToCharArray();
char[] str2 = space.ToCharArray();

bool uppercase = false;

StringBuilder sb = new StringBuilder();

foreach (char c in str)
{
    if (c != str2[0])
    {
        if (uppercase)
            sb.Append(char.ToUpper(c));
        else
        {
            sb.Append(char.ToLower(c));
        }
        uppercase = !uppercase;
    }
    else
    {
        sb.Append(c);
    }   
}

string newString = sb.ToString();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36254212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档