练习
单词反向拼写挑战
通常需要将本模块中介绍的几个概念组合成一个解决方案。这一挑战会强制你将较大的问题分解成若干小问题,然后使用本模块中的各个概念来解决每个小问题。
在 .NET 编辑器中编写代码,反向拼写消息中的每个单词
从以下代码行开始:
csharp
string pangram = "The quick brown fox jumps over the lazy dog";编写必要的代码来反向排列构成每个单词的字母,并显示结果。换言之,不要只反向排列变量 pangram 中的每个字母,相反,你只需要反向排列构成每个单词的字母,但仍以反向拼写单词在消息中的原始位置打印它们。
如果成功,应会得到以下输出:
bash
ehT kciuq nworb xof spmuj revo eht yzal god重要
这是一个特别困难的挑战。需要结合本练习中学习到的许多概念,包括 Split()、ToCharArray()、Array.Reverse() 和 String.Join() 的使用。还需要创建多个数组和至少一个迭代语句。
代码
csharp
string pangram = "The quick brown fox jumps over the lazy dog";
string[] wordArray = pangram.Split(' ');
foreach(string word in wordArray){
char[] letterArray= word.ToCharArray();
Array.Reverse(letterArray);
Console.Write($"{new string(letterArray)} ");
}
ehT kciuq nworb xof spmuj revo eht yzal god答案
csharp
string pangram = "The quick brown fox jumps over the lazy dog";
string[] message = pangram.Split(' ');
string[] newMessage = new string[message.Length];
for (int i = 0; i < message.Length; i++)
{
char[] letters = message[i].ToCharArray();
Array.Reverse(letters);
newMessage[i] = new string(letters);
}
string result = String.Join(" ", newMessage);
Console.WriteLine(result);深入分析欺诈性订单挑战
之前,我们着手编写了代码来存储可能是欺诈性订单的订单 ID。我们希望尽早发现欺诈性订单,并标记这些订单以进行深入分析。
我们团队发现了一种模式:以字母“B”开头的订单,其涉及欺诈的概率是正常订单的 25 倍。我们的任务就是编写新代码,用于输出订单 ID 以字母“B”开头新订单的订单 ID。我们的反欺诈团队将使用此代码进行进一步调查。
使用以下代码作为起点,需要从包含传入订单序列的字符串 (orderStream) 中解析出订单 ID。然后,打印每个以字母“B”开头的订单 ID。
csharp
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
// Your code here输出应与以下输出相匹配:
bash
B123
B177
B179重要
提示:循环访问数组中的每个元素时,需要决策语句。决策语句需要对字符串类使用一种方法,以此确定字符串是否以特定的字母开头。如果需要帮助,请查看本学习路径中的其他模块。
代码
csharp
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
string[] orderArray = orderStream.Split(',');
foreach (string order in orderArray){
if(order.StartsWith("B")){
Console.WriteLine(order);
}
}
// B123
// B177
// B179答案
csharp
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
string[] items = orderStream.Split(',');
foreach (var item in items)
{
if (item.StartsWith("B"))
{
Console.WriteLine(item);
}
}