小写和大写交替 c#
LowerCase and UpperCase Alternating c#
我需要将短语单词转换为大写和小写连续(交替)。
示例。
输入:
the girl is pretty.
输出:
tHe GiRl Is PrEtTy
我试过下面的代码,但它只转换第一个字母:
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);
谢谢
使用 LINQ 的奇特解决方案:
string someString = "the girl is pretty";
string newString = string.Concat(
someString.ToLower().AsEnumerable().Select((c, i) => i % 2 == 0 ? c : char.ToUpper(c)));
这基本上做了以下事情:
- 将字符串转换为小写。
- 遍历每个字符。
- 将每隔一个字符转换为大写。
- 将字符连接成一个字符串。
一个更“经典”的解决方案可能是这样的:
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();
poke
的回答是正确的,但是它包括交替大小写的空格。我对之前的答案做了一些调整,它忽略了字符串的空格。
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();
我需要将短语单词转换为大写和小写连续(交替)。
示例。
输入:
the girl is pretty.
输出:
tHe GiRl Is PrEtTy
我试过下面的代码,但它只转换第一个字母:
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);
谢谢
使用 LINQ 的奇特解决方案:
string someString = "the girl is pretty";
string newString = string.Concat(
someString.ToLower().AsEnumerable().Select((c, i) => i % 2 == 0 ? c : char.ToUpper(c)));
这基本上做了以下事情:
- 将字符串转换为小写。
- 遍历每个字符。
- 将每隔一个字符转换为大写。
- 将字符连接成一个字符串。
一个更“经典”的解决方案可能是这样的:
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();
poke
的回答是正确的,但是它包括交替大小写的空格。我对之前的答案做了一些调整,它忽略了字符串的空格。
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();