私はこの問題に本当に混乱しています。明確にするために、それは宿題ではなく、面接で尋ねられる質問です. 私はそれを行う方法についてのアイデアを得るために多くのことを試みましたが、そうすることができませんでした
ここに問題があります
それらが文字列であるとします
"Patient Bond is the best bond in the world."
ここで、組み込み関数を使用せずにケースを維持せずに、Patient と Bond という単語を検索して反転させたいと考えています。
出力は次のようになります。
"tneitaP dnoB is the best dnob in the world. "
私はcを使用していましたが、それをどのように行うかについて頭を悩ませていました。だから私はC#に切り替えましたが、結果は同じでした。
誰でも私を導くことができますか、コードを書くとさらに良くなります。
私はしばらく前からメンバーであり、スタックオーバーフローが解決策全体を解決するわけではなく、問題を解決するのに役立つだけであることを知っています。しかし、本当に私はこの問題で立ち往生しており、何をすべきかわかりません。だから私を助けてください
前もって感謝します。
編集:
真剣に私はそれを行う方法がわかりません。OK、質問を解決しませんが、誰かがそれを行う方法についてアイデアを提供できるかもしれません。
編集 2
ここに完全に機能するソリューションがありますが、まだいくつかの組み込み関数が組み込まれていますが、まだコーディングに取り組んでいますが、当分の間、質問を再度開くために. 今問題は、他のアプローチでそれを行うことができるかということです? これが私が思いついたものです。
class Program
{
static void Main(string[] args)
{
string ret = "";
string ar = "Patient Bond is the best bond";
foreach (string bar in ar.Split2(" "))
{
if (bar.ToLower() == "patient" || bar.ToLower() == "bond")
ret = ret + StringExtensions.ReverseMe(bar) + " ";
else
{
ret = ret + bar + " ";
}
}
Console.WriteLine(ret);
Console.ReadLine();
}
}
public static class StringExtensions
{
public static IEnumerable<string> Split2(this string source, string delim)
{
// argument null checking etc omitted for brevity
int oldIndex = 0, newIndex;
while ((newIndex = source.IndexOf(delim, oldIndex)) != -1)
{
yield return source.Substring(oldIndex, newIndex - oldIndex);
oldIndex = newIndex + delim.Length;
}
yield return source.Substring(oldIndex);
}
public static string ReverseMe(string abc)
{
StringBuilder sb = new StringBuilder();
int i = abc.Length - 1;
while (i != -1)
{
sb.Append(abc[i--]);
}
string sbstring = sb.ToString();
return sbstring;
}
}
私はスタック オーバーフローを尊重します。スタック オーバーフローは、私が得ることができなかった多くのことを学ばせてくれたからです。誰かが助けを求めてきたら、自分にはスキルがないと言ってただ笑ってはいけません。私も同じことをしており、他の人もそうするだろうと期待しています。