string str = "Tiptoe through the tulips"; string[] ary = str.Split(' '); string max = ""; for (int i = ary.Length - 1; i > 0; i--) { if (ary[i].Length > ary[i - 1].Length) { max = ary[i]; } else { max = ary[i - 1]; } } Console.WriteLine(max);
时间: 2024-03-20 19:41:17 浏览: 67
潮流英语词汇大全.doc
这段代码的作用是找出字符串 "Tiptoe through the tulips" 中最长的单词并输出。
此段代码的逻辑有误,应该将 max 的初始值设为第一个单词,而不是设为空字符串。此外,在循环中应该使用 Math.Max 方法来比较两个单词的长度,而不是使用 if-else 语句。
以下是修改后的代码:
```csharp
string str = "Tiptoe through the tulips";
string[] ary = str.Split(' ');
string max = ary[0];
for (int i = 1; i < ary.Length; i++) {
max = Math.Max(max, ary[i], StringComparer.OrdinalIgnoreCase);
}
Console.WriteLine(max);
```
这里使用了 Split 方法将字符串分割成单词,将 max 的初始值设为第一个单词。在循环中使用 Math.Max 方法来比较两个单词的长度,该方法会返回长度较长的那个单词。最后输出最长的单词。注意 Math.Max 方法的第三个参数使用了 StringComparer.OrdinalIgnoreCase,这是为了忽略单词中的大小写。
阅读全文