import java.util.Stack;
/*
*字符串反转
*
* 方法一:String类的api中的reverse方法
* 方法二:可以通过栈来实现Stack的push()和pop()方法
* */
public class StrReverse {
public static void main(String[] args) {
//方法一:StringBuilder类的api中的reverse方法
method01();
//方法二:可以通过栈Stack的push()和pop()方法来实现
method02();
}
private static void method02() {
String str = "ABC123abc";
//将字符串转换为字符数组
char[] charArray = str.toCharArray();
//将字符数组中的值依次入栈
Stack<Character> stack = new Stack<>();
//加强版for循环
for(char item : charArray){
stack.push(item);//char数组的元素push()依次入栈
}
//多次出栈直至结束即为逆转,需使用StringBuilder类来拼接出栈元素
StringBuilder newStr = new StringBuilder();
for(int i = 0;i<charArray.length;i++){
newStr.append(stack.pop());
}
System.out.println("逆转前为:"+str);
System.out.println("逆转后为:"+newStr);
}
private static void method01() {
String str="ABC123abc";
//通过String的实现类StringBuilder
StringBuilder stringBuilder = new StringBuilder(str);
stringBuilder.append("456");
System.out.println("ABC123abc"+"拼接上"+"456后,为:"+stringBuilder);
System.out.println("逆转前为:"+stringBuilder);
stringBuilder.reverse();
System.out.println("逆转后为:"+stringBuilder);
}
}