Java常用字符串反轉的五種方案大綱
java程序中如何一個字符串進行反轉?或者在字符串中指定部分進行反轉的方法有哪些?為幫助大家解決這個疑問,yjbys小編為同學們分享最新Java常用字符串反轉的五種方案,快來看看吧!
Java常用字符串反轉的5種方案,代碼如下:
第一個類是運行類
package everse;
import ner;
public class Run {
public Run() {
t("請輸入一個字符串:");
Scanner sc = new Scanner();
String str = ();
tln();
String reversedStrByArray = new Reverse(str)rseByArray();
tln("對應反轉字符串為[Array]:"+ reversedStrByArray);
String reversedStrByStack = new Reverse(str)rseByStack();
tln("對應反轉字符串為[Stack]:"+ reversedStrByStack);
String reversedStrBySort = new Reverse(str)rseBySort();
tln("對應反轉字符串為[逆序遍歷]:"+ reversedStrBySort);
String reversedStrByBit = new Reverse(str)rseByBit();
tln("對應反轉字符串為[位運算]:"+ reversedStrByBit);
String reversedStrByRecursive = new Reverse(str)rseByRecursive(str);
tln("對應反轉字符串為[遞歸]:"+ reversedStrByRecursive); }
public static void main(String[] args) {
new Run();
}
}
第二段代碼是實現類
package everse;
import k;
public class Reverse {
String str = new String();
public Reverse(String str) {
= str;
}
//用數組實現
public String reverseByArray() {
if(str == null th() == 0) {
return str;
}
int len = th();
char[] chArray = arArray();
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 th() == 0) {
return str;
}
Stack strStack = new Stack();
char[] chArray = arArray();
for(Character ch: chArray) {
(ch);
}
int len = th();
for(int i= 0; i< len; i++) { chArray[i] = ();
}
return new String(chArray);
}
//用逆序遍歷實現
public String reverseBySort() {
if(str == null th() == 0) {
return str;
}
StringBuilder sb = new StringBuilder();
for(int i= th()- 1; i>= 0; i--) {
nd(At(i));
}
return ring();
}
//用位運算實現
public String reverseByBit() {
if(str == null th() == 0) {
return str;
}
char[] chArray = arArray();
int len = th();
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 th() == 0) {
return str;
}
int len = th();
if(len == 1) {
return str;
} else {
return reverseByRecursive(tring(1))+ At(0);
}
}
}
-
2016年最新JAVA編程題及答案
【程序1】題目:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。【程序2】題目:古典問題:有...
-
關於Java堆、棧和常量池的介紹
常量池指在java用於保存在編譯期已確定的,已編譯的class文件中的一份數據。下面小編準備了關於Java堆、棧和常量池的介紹,歡迎大家參考!1.寄存器:最快的存儲區,由編譯器根據需求進行分配,我們在程序中無法控制。2.棧:存放基本類型的變量數據和對象的引用,但對象本身不...
-
Java命令參數説明大全
為了提高性能,往往需要調整java命令參數,以求系統達到最佳新能。另外這些參數的配置也是影響系統穩定性的一個重要因素,相信大多數Java開發人員都見過OutOfMemory類型的錯誤。這其中很可能就是JVM參數配置不當或者就沒有配置沒意識到配置引起的。那麼java命令參數...
-
java考試習題及答案
選擇題3、在JavaApplet程序用户自定義的Applet子類中,一般需要重載父類的(D)方法來完成一些畫圖操作。A.start()B.stop()C.init()D.paint()3、Java語言具有許多優點和特點,下列選項中,哪個反映了Java程序並行機制的特點?BA)安全性B)多線程C)跨平台D)可移植4、下列...