【发布时间】:2021-12-25 15:45:37
【问题描述】:
class Program
{
static void Main(string[] args)
{
Console.Write("Your string: ");
string str = Console.ReadLine();
stringFuncs.Insert(str, "Hello", 5);
}
}
public static string SubString(string word,int a, int b)
{
for(int i = a; i < b; i++)
{
Console.Write(word[i]);//my substring method
}
return word;
}
public static string Insert(string word, string subs, int index)
{
int numberOfLetters = 0;
foreach (var c in word)
{
numberOfLetters++;
}
Console.WriteLine(stringFuncs.SubString(word, 0, index) + subs + stringFuncs.SubString(word, index,numberOfLetters-index));
return word;
}
每当我写东西时,我都会得到这个输出:My stringHello My string
我的子字符串方法是错误的,我怎样才能让它只取我需要的部分并将其返回?
【问题讨论】:
-
什么是
AltDizi?您所说的“为什么要再次占用所有字符串”是什么意思?恐怕目前我发现你的问题很难理解。请阅读codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 并进行适当的编辑。请注意,您的SubString方法只是在 printing 部分之后返回原始字符串 - 所以如果您对它返回原始字符串感到惊讶,您应该解释您 expected 去做吧。 -
你的 stringFuncs 显然是一个你重写了 SubString 和 Insert 方法的类。为什么不让这门课出现在你的帖子中?更重要的是:不要在这些方法中使用 Console.Write 作为输出。这很令人困惑。 Console.WriteLine 可用于程序的主要部分进行测试,但不能用于方法本身的结果。 Insert 方法不需要返回 'word' 字符串,因为您使用 Insert 一次作为 void 方法。
-
而且你的 a et b 参数都是索引。所以最后一次调用你的 SubString 方法必须考虑到索引小于字母总数的一半。在标准 C# Substring 中,第一个 arg 'a' 使用索引,'b' 使用多个字符。