c# - 根据字母的位置拆分字母
问题描述
我正在尝试根据字母位置将字符串单词溢出到两个字符串中。这两个字符串是偶数和奇数。我设法读取了字符串并使用了 for 循环,但条件运算符不起作用并给我下面的错误。我做错了什么?
示例:字符串单词是pole 偶数位置字符串 - oe 奇数位置字符串 - pl
错误
Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement
string word = Console.ReadLine();
for(int i = 0; i < word.Length; i++)
{
string even = "";
string odd = "";
((i % 2 == 0) ? even += word[i]: odd += word[i]);
}
解决方案
您可以按如下方式使用丢弃运算符。
string word = Console.ReadLine();
string even = "";
string odd = "";
for(int i = 0; i < word.Length; i++)
{
var _ = ((i % 2 == 0) ? even += word[i]: odd += word[i]);
}
这里有几点需要注意。
- 您需要在循环外声明
odd
,even
变量,否则将为循环的每次迭代重新创建它 - 请记住字符串是不可变的。您也可以考虑 StringBuilder 类。
推荐阅读
- bash - 如何在 bash 中用 & 号读取参数
- r - 如何变异为 3 级 dbl 变量
- c - 在 C(进程)中使用两个管道读取后无法退出循环
- directory - Python os.walk:如何在其子目录全部删除后删除目录
- java - 如何使用 Java 在 ZMQ 中接收多部分消息?
- string - Powershell在那里添加的字符串类型的ParameterizedProperty Chars属性是什么?
- javascript - TypeError:db.collection 不是函数(Firestore 和 Discord.js)
- winapi - 使用 TextOut char by char 与一次全部渲染水平线时的区别
- css - 如何显示这个 Scss/Sass 值?
- azure - 无法创建外部表