1、使用charAt获取每个字符串的单个字符,再进行拼接
注意:charAt() 方法返回指定索引处的char值。索引范围是从0到length() – 1。
public class java_15 {
public static void main(String[] args) {
// 调用
System.out.println(reverse("sjopiu"));
}
public static String reverse(String str){
int len = str.length();
String res = "";
// 用charAt()传入索引,获取每个字符
for (int i=len-1;i>=0;i--){
res = res+str.charAt(i);
}
return res;
}
}
2、利用toCharArray() 方法将字符串转换为字符数组,通过获取字符数组的字符反转
public class java_15 {
public static void main(String[] args) {
// 调用
System.out.println(reverse1("sjopiu"));
}
// 使用toCharArray
public static String reverse1(String str){
char[] chars = str.toCharArray(); //将字符串转为字符串数组
String res = "";
for (int i=0;i<chars.length;i++){
res = chars[i]+res;//此时chars[i]就可以直接像数组这样访问每个元素
}
return res;
}
}
3、利用StringBuffer()自带的reverse方法
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用【可以改变该序列的长度和内容】。原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作
StringBuffer的方法使用:
public class java_15 {
public static void main(String[] args) {
// 调用
System.out.println(reverse2("sjopiu"));
}
// 使用StringBuffer
public static String reverse2(String str){
String res = new StringBuffer(str).reverse().toString();
return res;
}
}
注意:里面用到了StringBuffer的链式调用new StringBuffer(str).reverse().toString(),这样写是因为调用了StringBuffer方法之后会返回一个对象,因此我们需要在反转之后再把它转为字符串。
4、使用stack堆栈,先进后出的原理,实现反转
import java.util.Stack;
public class java_15 {
public static void main(String[] args) {
// 调用
System.out.println(reverse3("sjopiu"));
}
// 使用堆栈
public static String reverse3(String str){
char[] chars = str.toCharArray();
Stack<Character> stack = new Stack<Character>();
String res = "";
// 入栈
for (int i=0;i<chars.length;i++){
stack.push(chars[i]);
}
// 出栈
for (int i=0;i<chars.length;i++){
res+=stack.pop();
}
return res;
}
}
Stack是栈;特点是:先进后出。
它提供了通常的 push 和 pop 操作,以及取栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到栈顶距离的 search 方法。
push(E item) | 把项压入堆栈顶部。 |
pop() | 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
peek() | 查看堆栈顶部的对象,但不从堆栈中移除它。 |
boolean empty() | 测试堆栈是否为空。 |
int search(Object o) | 返回对象在堆栈中的位置,以 1 为基数。 |
看你喜欢哪种方法就用哪种~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149722.html