public static string Reverse(string str)
{
string[] s = new string[100];
string ss= "";
int begin = 0;
int end = str.Length;
//拆分字符串到数组
for (int i = 0; i < str.Length;i++ )
{
s[i] = str.Substring(i,1);
}
//交换
while (begin <= end)
{
string temp = "";
temp = s[begin];
s[begin] = s[end];
s[end] = temp;
begin++;
end--;
}
//组合字符串
"大家注意这里"
// for (int i = 0; i <=str.Length; i++)
//{
// ss += s[i];
//}
//为什么多循环一反而正确了呢?
//下面的的确错了
for (int i = 0; i <str.Length; i++)
{
ss += s[i];
}
return ss;
}
解决方案 »
- C#高手进呀,想获得任意类型的默认值 形成 智能COPY
- 请教一下c#如何读取用空格分开的字符串的文件
- 请问这句vb.net什么意思?在c#.net里怎么写?
- 如何放弃对象的构造?
- winfrom 中 关于 ListView 的问题
- 如何把Encoding.Default.GetBytes转成C++语句
- chekboxlist不能像WEB页中的有一个text和一个value属性啊?
- dataGrid控件
- 怎么样把c#解决方案的某个项目的某个文件夹里的exe文件复制到输出目录?
- WinXP 采取了更严厉的反盗版措施,但 Mono 似乎没有了音信。
- c# 怎么实现TCP外网访问内网!
- C#两个静态范围集合,对比问题?
这这一行放一个breakpoint看不就得了。
for (int i = 0; i <str.Length; i++)
{
ss += s[i];
}
是可以的如果运行交换的代码部分for循环就要多运行一次才可以
for (int i = 0; i <str.Length; i++)
{
ss += s[i];
}问题在这里,但是为什么会这样呢?请高手指点
for (int i = 0; i <=str.Length; i++)
{
ss += s[i];
}
while (begin <= end)
{
string temp = "";
temp = s[begin];
s[begin] = s[end];
s[end] = temp;
begin++;
end--;
}
看看你这段语句,s[end]是什么? s[end]=null;所以你应该把begin<=end变为begin<=(end-1)
因为最后一个元素的下标为str.Length-1.
这下没错了
char[] c = str.ToCharArray();
str="";
for (int i = 0; i <str.Length; i++)
{
str =str.Insert(0, c[i].ToString());
}这样不就行了?
for (int i = 0; i < =str.Length;i++ )
{
s[i] = str.Substring(i,1);
}