您的位置:首页 > 职场人生

java基础——字符串中的反转Reverse问题(面试必备)

2017-12-16 09:57 561 查看
由于研究了关于字符串(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);


如果再有方法,我会即使更新!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string