【发布时间】:2022-01-25 03:52:47
【问题描述】:
public static string TrimLeft(string word)
{
int numberOfLetters = 0;
foreach (var c in word)
{
numberOfLetters++;
}
int start = 0, end = numberOfLetters - 1;
string b = "";
for (int i = 0; i < numberOfLetters; i++)
{
if (!char.IsWhiteSpace(word[i]))
{
start = i;
b += word[i];
}
}
Console.WriteLine("Trimmed version: {0}", b);
return word;
}
我正在尝试自己编写 trimleft 函数,但我无法弄清楚我是如何完成正常修剪版本的,但我如何在不使用任何内置字符串的情况下完成它的 trimleft 版本。子字符串等函数。
【问题讨论】:
-
具体是什么没有按预期工作?当您在调试器中单步执行此代码时,哪个操作会产生意外结果?使用了哪些值?结果如何?预期的结果是什么?为什么?
-
Console.WriteLine(b),和return word????这需要更多解释! -
我正在尝试自己编写 trimleft 内置函数我进行了正常修剪并尝试对其进行修改,但我现在找不到使这项工作正常工作的方法,此代码 jsut 占用所有空格并删除它们甚至在我不想要的单词之间我只想修剪 ex 参数中给出的左侧:“abc defg”我希望这个字符串变成“abc defg”
-
修剪时,您将删除所有空格。所以使用以下内容:if(!char.IsWhiteSpace(word[i]))。还要更改以下内容: b = word.Substring(i)
-
为什么要获取计数,将其转换为字符,将其转换为字符串,然后将其解析为整数?为什么不直接使用整数计数而不转换 3 次呢?此外,变量 start 和 end 被初始化但从未使用过。