反轉一句話(僅反轉各單詞的順序)


 

一、目的:將字符串"I am  a   programmer" 反轉為 "programmer   a  am I".

二、具體實現
方法1,使用split函數
思路:將str用一個空格分割成數組,然后將數組"從尾至頭"輸出;輸出時有一個小問題需要注意,由於分割得到數組的過程去掉了原字符串中(數組長度數-1)個空格,所以輸出時要補上。

private static void reverse()

    string str = "I am  a   programmer";
    string[] arr = str.Split(' ');

    for (int i = arr.Length - 1; i >= 0; i--)
    {
        Console.Write(arr[i] + " ");
    }

    Console.WriteLine("");
}

方法2,不使用split函數
思路:將str"從尾至頭"一個一個地遍歷,如果當前char是" "或' ',就先輸出之前記錄的非空字串,然后輸出當前的字符(一個空格);否則,就先記錄當前字符。這里也有一點需要注意,就是“有可能最后temp中還保存有非空格的字符,但還沒有輸出”,所以最后還需要再輸出一次temp(這里有一個技巧,就是不用再判斷temp是否為空,因此如果temp為空話輸出也不會對結果有什么影響)。

private static void reverse()

    string str = "I am  a   programmer";  
    string temp = "";

    for (int i = str.Length - 1; i >= 0; i--)
    {
        if (str[i] == ' ')
        {
            Console.Write(temp);
            Console.Write(" ");

            temp = "";
        }
        else
        {
            temp = str[i] + temp;
        }
    }

    Console.Write(temp);
    Console.WriteLine("");
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com