在本文中,我們將討論如何以10種不同的方式在Java中反轉(zhuǎn)String。 在本文中,我們將編寫(xiě)10個(gè)Java程序來(lái)反轉(zhuǎn)String。 例如,從“javaguides”到“sediugavaj”的反向字符串。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、伊金霍洛網(wǎng)站維護(hù)、網(wǎng)站推廣。
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringConcat {
public static void main(String [] args){
ReverseWithStringConcat concat = new ReverseWithStringConcat();
concat。reverseWithStringConcat(“javaguides”);
}
private String reverseWithStringConcat(String input){
String output = new String();
對(duì)于(詮釋 我 =(輸入。長(zhǎng)度()- 1); 我 > = 0 ; 我-){
輸出 + =(輸入。的charAt(我));
}
顯示(輸入,輸出);
返回 輸出 ;
}
private void display(String input,String output){
系統(tǒng)。出。println(“input string ::” + input);
系統(tǒng)。出。println(“output string ::” + output);
}
}
產(chǎn)量
輸入 字符串 :: javaguides
輸出 字符串 :: sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringBuilderBuiltinMethod {
public static void main(String [] args){
ReverseWithStringBuilderBuiltinMethod builtinMethod = new ReverseWithStringBuilderBuiltinMethod();
builtinMethod。reverseWithStringBuilderBuiltinMethod(“javaguides”);
}
public String reverseWithStringBuilderBuiltinMethod(String string){
final StringBuilder builder = new StringBuilder(string);
顯示(字符串,助洗劑。反向()。的toString());
返回 建設(shè)者。反轉(zhuǎn)()。toString();
}
private void display(String input,String output){
系統(tǒng)。出。println(“input string ::” + input);
系統(tǒng)。出。println(“output string ::” + output);
}
}
產(chǎn)量
輸入 字符串 :: javaguides
輸出 字符串 :: sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringChatAt {
public static void main(String [] args){
ReverseWithStringChatAt reverseWithStringBuilder = new ReverseWithStringChatAt();
reverseWithStringBuilder。reverseWithStringBuilder(“javaguides”);
}
public String reverseWithStringChatAt(String string){
final StringBuilder builder = new StringBuilder();
對(duì)于(詮釋 我 =(字符串。長(zhǎng)度()- 1); 我 > = 0 ; 我-){
建設(shè)者。追加(字符串。的charAt(我));
}
顯示(字符串,助洗劑。的toString());
返回 建設(shè)者。toString();
}
private void display(String input,String output){
系統(tǒng)。出。println(“input string ::” + input);
系統(tǒng)。出。println(“output string ::” + output);
}
}
產(chǎn)量
輸入 字符串 :: javaguides
輸出 字符串 :: sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
公共 類(lèi) ReverseStringWithSwaps {
public static void main(String [] args){
ReverseStringWithSwaps stringWithSwaps = new ReverseStringWithSwaps();
stringWithSwaps。reverseWithSwaps(“javaguides”);
}
public String reverseWithSwaps(String string){
final char [] array = string。toCharArray();
final int length = array。長(zhǎng)度 - 1 ;
final int half =(int)數(shù)學(xué)。地板(陣列。長(zhǎng)度 / 2);
char c ;
for(int i = length ; i > = half ; i -){
c = array [ length - i ];
array [ length - i ] = array [ i ];
array [ i ] = c ;
}
顯示(字符串,字符串。的valueOf(陣列));
return String。valueOf(array);
}
private void display(String input,String output){
系統(tǒng)。出。println(“input string ::” + input);
系統(tǒng)。出。println(“output string ::” + output);
}
}
產(chǎn)量
輸入 字符串 :: javaguides
輸出 字符串 :: sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringWithXOR {
public static void main(String [] args){
ReverseStringWithXOR stringWithXOR = new ReverseStringWithXOR();
stringWithXOR。reverseWithXOR(“javaguides”);
}
public String reverseWithXOR(String string){
final char [] array = string。toCharArray();
final int length = array。長(zhǎng)度 ;
final int half =(int)數(shù)學(xué)。地板(陣列。長(zhǎng)度 / 2);
for(int i = 0 ; i < half ; i ++){
array [ i ] ^ = array [ length - i - 1 ];
array [ length - i - 1 ] ^ = array [ i ];
array [ i ] ^ = array [ length - i - 1 ];
}
顯示(字符串,字符串。的valueOf(陣列));
return String。valueOf(array);
}
private void display(String input,String output){
系統(tǒng)。出。println(“input string ::” + input);
系統(tǒng)。出。println(“output string ::” + output);
}
}
產(chǎn)量
輸入 字符串 :: javaguides
輸出 字符串 :: sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
導(dǎo)入 java。util。堆棧 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingStack {
//使用堆棧和字符數(shù)組在Java中反轉(zhuǎn)字符串的函數(shù)
public static String reverse(String str){
//基本情況:如果string為null或?yàn)榭?
如果(STR == 空 || 海峽。等號(hào)(“” ))
返回 str ;
//創(chuàng)建一個(gè)空的字符堆棧
Stack < Character > stack = new Stack < Character >();
//將給定字符串的每個(gè)字符都?jí)喝攵褩?
char [] ch = str。toCharArray();
對(duì)于(詮釋 我 = 0 ; 我 < STR。長(zhǎng)度(); 我++)
堆棧。推(ch [ i ]);
//從索引0開(kāi)始
int k = 0 ;
//從堆棧中彈出字符,直到它為空
而(!棧。的isEmpty()){
//將每個(gè)彈出的字符分配回字符數(shù)組
ch [ k ++ ] = 堆棧。pop();
}
//將字符數(shù)組轉(zhuǎn)換為字符串并返回它
return String。copyValueOf(ch);
}
public static void main(String [] args){
String str = “javaguides” ;
str = reverse(str); //字符串是不可變的
系統(tǒng)。出。println(“給定字符串的反轉(zhuǎn)是:” + str);
}
}
產(chǎn)量
反向 的 在 給定的 字符串 是:sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
導(dǎo)入 java。util。ArrayList ;
導(dǎo)入 java。util。收藏 ;
導(dǎo)入 java。util。清單 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingCollectionsReverseMethod {
//使用Collections.reverse()在Java中反轉(zhuǎn)字符串的函數(shù)
public static String reverse(String str){
//基本情況:如果string為null或?yàn)榭?
如果(STR == 空 || 海峽。等號(hào)(“” ))
返回 str ;
//創(chuàng)建一個(gè)空字符列表
List < Character > list = new ArrayList < Character >();
//將給定字符串的每個(gè)字符都推入其中
對(duì)于(炭 ?:STR。toCharArray())
清單。添加(c);
//使用java.util.Collections反向列表reverse()
收藏。反向(列表);
//使用StringBuilder將ArrayList轉(zhuǎn)換為String并返回它
StringBuilder的 建設(shè)者 = 新 的StringBuilder(名單。大小());
for(字符 c:列表)
建設(shè)者。追加(c);
返回 建設(shè)者。toString();
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可變的
str = reverse(str);
系統(tǒng)。出。println(“給定字符串的反轉(zhuǎn)是:” + str);
}
}
產(chǎn)量
反向 的 在 給定的 字符串 是:sediuG avaJ
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingByteArray {
//使用字節(jié)數(shù)組在Java中反轉(zhuǎn)字符串的函數(shù)
public static String reverse(String str){
//如果string為null或?yàn)榭談t返回
如果(STR == 空 || 海峽。等號(hào)(“” ))
返回 str ;
//將字符串轉(zhuǎn)換為字節(jié)
byte [] bytes = str。getBytes();
//從給定字符串的兩個(gè)端點(diǎn)l和h開(kāi)始
//并在循環(huán)的每次迭代中遞增l和遞減h
//直到兩個(gè)終點(diǎn)相交(l> = h)
對(duì)(INT 升 = 0,? = STR。長(zhǎng)度()- 1 ; 升 < ? ; 升++,? -){
//在l和h處交換值
byte temp = bytes [ l ];
bytes [ l ] = bytes [ h ];
bytes [ h ] = temp ;
}
//將字節(jié)數(shù)組轉(zhuǎn)換回字符串
return new String(bytes);
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可變的
str = reverse(str);
系統(tǒng)。出。println(“給定字符串的反轉(zhuǎn)是:” + str);
}
}
產(chǎn)量
反向 的 在 給定的 字符串 是:sediuG avaJ
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingSubStringFunction {
//使用遞歸在Java中反轉(zhuǎn)字符串的函數(shù)
private static String reverse(String str){
//基本情況:如果string為null或?yàn)榭?
如果(STR == 空 || 海峽。等號(hào)(“” ))
返回 str ;
//最后一個(gè)字符+遞歸剩下的字符串
返回 str。的charAt(STR。長(zhǎng)度()- 1)+ 反向(STR。子串(0,STR。長(zhǎng)度()- 1));
}
public static void main(String [] args){
String str = “javaguides” ;
//字符串是不可變的
str = reverse(str);
系統(tǒng)。出。println(“給定字符串的反轉(zhuǎn)是:” + str);
}
}
產(chǎn)量
反向 的 在 給定的 字符串 是:sediugavaj
包 網(wǎng)。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingRecursion {
static int i = 0 ;
//使用靜態(tài)變量在Java中反轉(zhuǎn)字符串的遞歸函數(shù)
private static void reverse(char [] str,int k){
//如果我們到達(dá)了字符串的末尾
如果(? == STR。長(zhǎng)度)
回歸 ;
//遞歸下一個(gè)角色
反轉(zhuǎn)(str,k + 1);
if(i <= k){
char temp = str [ k ];
str [ k ] = str [ i ];
str [ i ++ ] = temp ;
}
}
public static String reverse(String str){
//基本情況:如果string為null或?yàn)榭?
如果(STR == 空 || 海峽。等號(hào)(“” ))
返回 str ;
//將字符串轉(zhuǎn)換為字符數(shù)組
char [] A = str。toCharArray();
//反向字符數(shù)組
反向(A,0);
//將字符數(shù)組轉(zhuǎn)換為字符串
return String。copyValueOf(A);
}
public static void main(String [] args){
String str = “Java Guides” ;
//字符串是不可變的
str = reverse(str);
系統(tǒng)。出。println(“給定字符串的反轉(zhuǎn)是:” + str);
}
}
產(chǎn)量
反向 的 在 給定的 字符串 是:sediuG avaJ
本文題目:在Java中反轉(zhuǎn)字符串的10種方法[Snippets]
文章轉(zhuǎn)載:http://chinadenli.net/article12/giocgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站導(dǎo)航、定制網(wǎng)站、服務(wù)器托管、微信小程序、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)