- 相关推荐
Java常用字符串反转的五种方案
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,以下是为大家分享的Java常用字符串反转的五种方案,供大家参考借鉴,欢迎浏览!
第一个类是运行类Run.java
package com.imooc.strreverse;
import java.util.Scanner;
public class Run {
public Run() {
System.out.print("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println();
String reversedStrByArray = new Reverse(str).reverseByArray();
System.out.println("对应反转字符串为[Array]:"+ reversedStrByArray);
String reversedStrByStack = new Reverse(str).reverseByStack();
System.out.println("对应反转字符串为[Stack]:"+ reversedStrByStack);
String reversedStrBySort = new Reverse(str).reverseBySort();
System.out.println("对应反转字符串为[逆序遍历]:"+ reversedStrBySort);
String reversedStrByBit = new Reverse(str).reverseByBit();
System.out.println("对应反转字符串为[位运算]:"+ reversedStrByBit);
String reversedStrByRecursive = new Reverse(str).reverseByRecursive(str);
System.out.println("对应反转字符串为[递归]:"+ reversedStrByRecursive); }
public static void main(String[] args) {
new Run();
}
}
第二段代码是实现类Reverse.java
package com.imooc.strreverse;
import java.util.Stack;
public class Reverse {
String str = new String();
public Reverse(String str) {
this.str = str;
}
//用数组实现
public String reverseByArray() {
if(str == null str.length() == 0) {
return str;
}
int len = str.length();
char[] chArray = str.toCharArray();
for(int i= 0; i< len/2; i++) {
char temp;
temp = chArray[i];
chArray[i] = chArray[len- 1- i];
chArray[len- 1- i] = temp;
}
return new String(chArray);
}
//用栈实现
public String reverseByStack() {
if(str == null str.length() == 0) {
return str;
}
Stack strStack = new Stack();
char[] chArray = str.toCharArray();
for(Character ch: chArray) {
strStack.push(ch);
}
int len = str.length();
for(int i= 0; i< len; i++) { chArray[i] = strStack.pop();
}
return new String(chArray);
}
//用逆序遍历实现
public String reverseBySort() {
if(str == null str.length() == 0) {
return str;
}
StringBuilder sb = new StringBuilder();
for(int i= str.length()- 1; i>= 0; i--) {
sb.append(str.charAt(i));
}
return sb.toString();
}
//用位运算实现
public String reverseByBit() {
if(str == null str.length() == 0) {
return str;
}
char[] chArray = str.toCharArray();
int len = str.length();
for(int i= 0; i< len/ 2; i++) {
chArray[i]^= chArray[len- 1- i];
chArray[len- 1- i]^= chArray[i];
chArray[i]^= chArray[len- 1- i];
}
return new String(chArray);
}
//用递归实现
public String reverseByRecursive(String str) {
if(str == null str.length() == 0) {
return str;
}
int len = str.length();
if(len == 1) {
return str;
} else {
return reverseByRecursive(str.substring(1))+ str.charAt(0);
}
}
}
【Java常用字符串反转的五种方案】相关文章:
java判断字符串是否为数字的几个方法04-11
C语言字符串04-14
Java常用的五大排序算法04-18
什么是Java10-28
java类的构成04-28
Java语言的内部类12-13
java线程的几种状态12-14
Java基础知识精选02-20
新手如何学习Java07-06
Java语言的编程特点03-18