public string Reverse(string str)
{
StringBuilder sb = new StringBuilder();
for(int i=str.Length-1;i>=0;i--)
{
sb.Append(str[i]);
}
return sb.ToString();
}我一直在想这样的如果不用循环该如何写? 是否有其它更高效一些的写法呢? 因为我一直觉得循环的效率挺低...... 像这样的,如果是很长很长很长的一个STRING那要好久哦...
请高手教教...谢谢.

解决方案 »

  1.   

    除非微软提供某种底层方法,否则,你能做的差不多也就是这些。稍微能优化点的是,既然你知道str的长度,那就应该在创建StringBuilder时将其尺寸一次设置到位。一般情况下,这样应该也不至于很慢。
      

  2.   

    public string Reverse(string str)
    {
    StringBuilder sb = new StringBuilder();
    for(int i=str.Length-1;i>=0;i--)
    {
    sb.Append(str[i]);
    }
    return sb.ToString();
    }==>public string Reverse(string str)
    {
      return str;
    }真是深奥啊……高深莫测况且还可以用sb.Append( str );
      

  3.   

    string str = "123";
                char[] ch = str.ToCharArray();
                Array.Reverse(ch);
                str = new string(ch);
                MessageBox.Show(str);
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  4.   

    字符串反转???
    你可以测试一下Array.Reverse
      

  5.   

    http://k-eckel.cnblogs.com/articles/195931.html
    看看别的语言实现的
      

  6.   

    new string ( Array.Reverse( str.ToCharArray() ) )
      

  7.   

    char[] chars = str.ToCharArray();
    Array.Reverse( chars );
    nwe string( chars );
      

  8.   

    Array.Reverse可能稍微快一点,但不一定特别明显。其主要原理是数组从两头开始对称互换。
      

  9.   

    OK,学到一种方法,用Array的反转,其它这个我是知道的,只是脑袋没开窍,一下没想到,看到大家写的才想起来,嘿嘿,除了Array.Reverse外还有其它的办法吗?