java基礎——字符串中的反轉Reverse問題(面試必備)

由於研究了關於字符串(String)的問題,今年就在這裏總結一下,首先說一下有關於面試,我想的是,需要一定的技能,比方說,大家想到這個反轉問題,肯定能說上了,只不過是你說的一般人都知道,要想在面試中更勝一籌,就必須比別人更多知道一點,更多地還是我們的積累,而不單單爲了面試,好了,不說這些廢話了,只有征服自己,纔是更大的贏家。。。
直奔主題,說一下關於在別人問到這個問題的時候,該如何去回答,我們需要一點一點就說,這樣子會感覺到我們更有條理,也不會更早的忘記。。。
從簡單的開始(就是從簡單的一句話開始)
注:old 爲字符串變量

 //return new StringBuffer(old).reverse().toString();
 //return new StringBuilder(old).reverse().toString();

再來一個大氣點的
我們要想到Collections類中有兩個重要的方法,(sort()與reverse());而reverser()參數是集合,這個時候就需要轉化爲集合,代碼如下:

        String result = "";
        List<String> olds = Arrays.asList(old.split(""));
        Collections.reverse(olds);
        for (String s : olds) {
            result += s;
        }
        return result;

然後再說一下關於charAt() 的用法:返回指定索引處的 char 值。

    利用下標倒序把字符取出來重組
        String result = "";
        for (int i = old.length() - 1; i >= 0; i--) {
            result += String.valueOf(old.charAt(i));
        }
        return result;
    這種方法是將先取出來的放在後取出來的後面
        String result = "";
        for (int i = 0; i < old.length(); i++) {
            result = old.charAt(i) + result;
        }
        return result;

再說一下關於toCharArray()的用法:該方法的作用是返回一個字符數組,該字符數組中存放了當前字符串中的所有字符

利用棧,就是傳說中的先進後出,如果不清楚,查看API即可,裏面有:
Stack() 創建一個空堆棧。
empty() 測試堆棧是否爲空;
push(E item) 把項壓入堆棧頂部;
pop() 移除堆棧頂部的對象,並作爲此函數的值返回該對象。
Character類爲char的封裝類

        char[] chars = old.toCharArray();
        Stack<Character> oldStack = new Stack<Character>();
        for (Character c : chars) {
            oldStack.push(c);
        }
        String result = "";
        while (!oldStack.empty()) {
            result += oldStack.pop();
        }
        return result;
來點刺激一點的,就是你的重點。。。要想說清楚就需要使用奇數偶數來測試 等等。。。
        char[] chars = old.toCharArray();
        int n = chars.length - 1;
        for (int i = 0; i <= n / 2; i++) {
            char temp = chars[i];
            chars[i] = chars[n - i];
            chars[n - i] = temp;
        }
        return new String(chars);

如果再有方法,我會即使更新!!!

發佈了45 篇原創文章 · 獲贊 61 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章