2014年1月25日 星期六

[C#] 字串反轉 (reverse) - "abc"->"cba"


以前只練習過c++
換到c# 好像有些不同,但千萬記住,要放到函式去唷,
如果在介面直接寫迴圈,會很恐怖喔~

第一次練習時用char[] , 去接str[i]。
第二次用StringBuilder 的Append。

new stringbuilder 的時候記得順便宣告字串長度,預設是16字元,減少電腦判斷的麻煩。

補充 : 第三次就是用.net函式庫的Array.reverse();

請看範例 :

  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             ///abc -> cab 字串翻轉
  6.             ///
  7.             Console.Write("請輸入一串要倒轉的字串 : ");
  8.             string str = Console.ReadLine();
  9.             string rev = reverse(str);
  10.             Console.WriteLine(rev);
  11.         }

  12.         /// 副程式 倒轉
  13.         public static string reverse(string str)
  14.         {
  15.             if (string.IsNullOrEmpty(str))
  16.             {
  17.                 throw new ArgumentException("參數不合法");
  18.             }
  19.             ///練習想到的方法
  20.             char[] temp = new Char[str.Length];
  21.             for (int i = 0; i < str.Length; i++)
  22.             {
  23.                 temp[i] = str[str.Length - i -1];
  24.             }
  25.             return new string(temp);

  26. //return string.Join("", temp); 這來亂的 哈哈!
  27.             //使用stringbuilder
  28.         //    StringBuilder sb = new StringBuilder(str.Length);
  29.         //    for(int i=str.Length - 1; i>=0 ;i--)
  30.         //    {
  31.         //        sb.Append(str[i]);
  32.         //    }
  33.         //    return sb.ToString();
  34.         }

  35. }
補充 : 第三次
///使用.net 函式庫
            ///
            char[] temp = str.ToCharArray();
            Array.Reverse(temp);
            return new string(temp);

沒有留言:

張貼留言