由于研究了关于字符串(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);

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