[英]Reversing a string c#
我有給我IndexOutOfRangeException的這種方法,你們可以幫助我理解為什么嗎?
public string FlipString(string inTxt)
{
StringBuilder outTxt = new StringBuilder();
for (int i = inTxt.Length; i > 0; i--)
{
char ch = inTxt[i];
outTxt.Append(ch);
}
Console.WriteLine(outTxt.ToString());
return outTxt.ToString();
}
該方法必須這樣寫(無例外)
C#中的數組基於0,而不是基於1。 您正在從n
迭代到1,但是需要從n-1
迭代到0:
for (int i = inTxt.Length - 1; i >= 0; i--)
另一方面,如果您只想反轉字符串,那么有一個使用LINQ的簡單解決方案:
var reversed = new String(inTxt.Reverse().ToArray())
扭轉強制嘗試這個
string reversed = new string(stringinput.Reverse().ToArray());
要么
string input = "hello world";
char[] inputarray = input.ToCharArray();
Array.Reverse(inputarray);
string output = new string(inputarray);
嘗試這個
public string FlipString(string inTxt)
{
StringBuilder outTxt = new StringBuilder();
for (int i = inTxt.Length-1; i >= 0; i--)
{
char ch = inTxt[i];
outTxt.Append(ch);
}
Console.WriteLine(outTxt.ToString());
return outTxt.ToString();
}
您需要使第一次進入循環的長度為字符串的長度-1,因為字符串數組是從零開始的。
擴展方式:
public static string Reverse(this string source)
{
char[] arr = source.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
並使用:
var reverted = source.Reverse();
ps盡可能簡單地保留它。
public string FlipString(string inTxt)
{
StringBuilder outTxt = new StringBuilder();
for (int i = inTxt.Length - 1; i >= 0; i--)
{
char ch = inTxt[i];
outTxt.Append(ch);
}
Console.WriteLine(outTxt.ToString());
return outTxt.ToString();
}
您需要從最后一個字符開始,也就是字符串的長度減去1,因為該字符串基於零。
public string FlipString(string inTxt)
{
StringBuilder outTxt = new StringBuilder();
for (int i = inTxt.Length-1; i >= 0; i--)
{
char ch = inTxt[i];
outTxt.Append(ch);
}
Console.WriteLine(outTxt.ToString());
return outTxt.ToString();
}
字符串中的索引從0開始,並達到Length-1。
首先操作是
char ch = inTxt[inTxt.Length]
所以你的代碼應該是
public string FlipString(string inTxt)
{
StringBuilder outTxt = new StringBuilder();
for (int i = inTxt.Length - 1; i > 0; i--)
{
char ch = inTxt[i];
outTxt.Append(ch);
}
Console.WriteLine(outTxt.ToString());
return outTxt.ToString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.