c# - 使用 StringBuild 将字符串更改为小写,仅用于不均匀定位的字母
问题描述
我目前正在通过在线教程学习 c#。到目前为止,我已经能够解决每一个练习,但这个我无法弄清楚:
编写一个程序,询问用户一个字符串。然后它将通过将不均匀的字母(第一个,第三个...)更改为小写,甚至将字母(第二个,第四个...)更改为大写字母来修改字符串。例如:“Hello”应该是这样的 --> hElLo。
我首先将字符串转换为大写,所以我只需要做小写部分。在本练习中,我应该使用 StringBuilder,但我无法弄清楚。我想也许通过for
循环我可以遍历每个字母并更改那些i%2 != 0
但StringBuilder
不能使用的字母ToLower()
。我想不出改变它的方法ToString()
,ToLower()
然后将它添加到字符串的末尾。
欢迎任何帮助。
马里奥。
解决方案
好吧,StringBuilder
没有ToLower()
,但您可以char.ToLower
为每个字符使用:
string source = "Abracadba";
StringBuilder sb = new StringBuilder(source.Length);
for (int i = 0; i < source.Length; ++i) {
sb.Append(i % 2 != 0
? char.ToUpper(source[i])
: char.ToLower(source[i]));
}
string result = sb.ToString();
同样的想法,Linq实现:
using System.Linq;
...
string result = string.Concat(source
.Select((c, i) => i % 2 != 0 ? char.ToUpper(c) : char.ToLower(c)));
推荐阅读
- vue.js - 当我在我的 mac 机器上运行“npm install”命令时,出现以下错误
- extjs - 如何在父网格数据的基础上,将网格插入到网格中?
- python - 如何使用 Keras 中的 Conv2D 在 5D 张量的最后三个维度上应用卷积?
- python-3.x - TypeError:在进行网页抓取时
- windows - Pygame的窗口打开而不是立即关闭,为什么?
- java - tycho surefire 的附加捆绑包
- android - Kotlin Jacoco 覆盖未显示 Android 中的静态方法(伴侣)
- python - 方法中的参数过多错误,只有一个必需参数
- javascript - 进行开玩笑测试时脚本(从脚本标签调用)不可用
- c - CHIP-8 模拟器无法按预期呈现图形