这里只给代码不给思路,这是基础的不能再基础的东西,却是最容易犯错的一个。
/// <summary>
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private static string RevNoSplit(string str)
{
StringBuilder sb = new StringBuilder();
int len = 0;
for (var i = str.Length - 1; i >= 0; i--)
{
len++;
if (i == 0)
{
sb.Append(str[i]);
}
else if (str[i] == ' ')
{
sb.Append(str.Substring(i + 1,len -1));
sb.Append(str[i]);
len = 0;
}
}
return sb.ToString();
}
/// <summary>
/// C#按单词反转字符串,不可以使用split,substring函数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private static string RevNoSplitSubstring(string str)
{
StringBuilder sb = new StringBuilder();
for (var i = str.Length - 1; i >= 0; i--)
{
if (i == 0)
{
sb.Append(str[i]);
}
else if (str[i] == ' ')
{
var breakpoint = str.Length - sb.Length;
for (var j = i; j < breakpoint - 1; j++) {
sb.Append(str[j + 1]);
}
sb.Append(str[i]);
}
}
return sb.ToString();
}