在Java中反轉字串的10種方法[Snippets]
在本文中,我們將討論如何以10種不同的方式在Java中反轉String。 在本文中,我們將編寫10個Java程式來反轉String。 例如,從“javaguides”到“sediugavaj”的反向字串。
用Java反轉字串的10種方法
1.使用+(String Concatenation)運算子
包 網。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();
對於(詮釋 我 =(輸入。長度()- 1); 我 > = 0 ; 我-){
輸出 + =(輸入。的charAt(我));
}
顯示(輸入,輸出);
返回 輸出 ;
}
private void display(String input,String output){
系統。出。println(“input string ::” + input);
系統。出。println(“output string ::” + output);
}
}
產量
輸入 字串 :: javaguides
輸出 字串 :: sediugavaj
2.使用StringBuilder
包 網。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());
返回 建設者。反轉()。toString();
}
private void display(String input,String output){
系統。出。println(“input string ::” + input);
系統。出。println(“output string ::” + output);
}
}
產量
輸入 字串 :: javaguides
輸出 字串 :: sediugavaj
3.使用String charAt方法
包 網。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();
對於(詮釋 我 =(字串。長度()- 1); 我 > = 0 ; 我-){
建設者。追加(字串。的charAt(我));
}
顯示(字串,助洗劑。的toString());
返回 建設者。toString();
}
private void display(String input,String output){
系統。出。println(“input string ::” + input);
系統。出。println(“output string ::” + output);
}
}
產量
輸入 字串 :: javaguides
輸出 字串 :: sediugavaj
4.使用交換字元反轉字串
包 網。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
公共 類 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。長度 - 1 ;
final int half =(int)數學。地板(陣列。長度 / 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){
系統。出。println(“input string ::” + input);
系統。出。println(“output string ::” + output);
}
}
產量
輸入 字串 :: javaguides
輸出 字串 :: sediugavaj
5.使用XOR(^)運算子反轉字串
包 網。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。長度 ;
final int half =(int)數學。地板(陣列。長度 / 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){
系統。出。println(“input string ::” + input);
系統。出。println(“output string ::” + output);
}
}
產量
輸入 字串 :: javaguides
輸出 字串 :: sediugavaj
6.使用Stack
包 網。javaguides。corejava。串 ;
匯入 java。util。堆疊 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingStack {
//使用堆疊和字元陣列在Java中反轉字串的函式
public static String reverse(String str){
//基本情況:如果string為null或為空
如果(STR == 空 || 海峽。等號(“” ))
返回 str ;
//建立一個空的字元堆疊
Stack < Character > stack = new Stack < Character >();
//將給定字串的每個字元都壓入堆疊
char [] ch = str。toCharArray();
對於(詮釋 我 = 0 ; 我 < STR。長度(); 我++)
堆疊。推(ch [ i ]);
//從索引0開始
int k = 0 ;
//從堆疊中彈出字元,直到它為空
而(!棧。的isEmpty()){
//將每個彈出的字元分配回字元陣列
ch [ k ++ ] = 堆疊。pop();
}
//將字元陣列轉換為字串並返回它
return String。copyValueOf(ch);
}
public static void main(String [] args){
String str = “javaguides” ;
str = reverse(str); //字串是不可變的
系統。出。println(“給定字串的反轉是:” + str);
}
}
產量
反向 的 在 給定的 字串 是:sediugavaj
7.使用Collections reverse()方法
包 網。javaguides。corejava。串 ;
匯入 java。util。ArrayList ;
匯入 java。util。收藏 ;
匯入 java。util。清單 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingCollectionsReverseMethod {
//使用Collections.reverse()在Java中反轉字串的函式
public static String reverse(String str){
//基本情況:如果string為null或為空
如果(STR == 空 || 海峽。等號(“” ))
返回 str ;
//建立一個空字元列表
List < Character > list = new ArrayList < Character >();
//將給定字串的每個字元都推入其中
對於(炭 Ç:STR。toCharArray())
清單。新增(c);
//使用java.util.Collections反向列表reverse()
收藏。反向(列表);
//使用StringBuilder將ArrayList轉換為String並返回它
StringBuilder的 建設者 = 新 的StringBuilder(名單。大小());
for(字元 c:列表)
建設者。追加(c);
返回 建設者。toString();
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可變的
str = reverse(str);
系統。出。println(“給定字串的反轉是:” + str);
}
}
產量
反向 的 在 給定的 字串 是:sediuG avaJ
8.使用位元組陣列
包 網。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingByteArray {
//使用位元組陣列在Java中反轉字串的函式
public static String reverse(String str){
//如果string為null或為空則返回
如果(STR == 空 || 海峽。等號(“” ))
返回 str ;
//將字串轉換為位元組
byte [] bytes = str。getBytes();
//從給定字串的兩個端點l和h開始
//並在迴圈的每次迭代中遞增l和遞減h
//直到兩個終點相交(l> = h)
對(INT 升 = 0,ħ = STR。長度()- 1 ; 升 < ħ ; 升++,ħ -){
//在l和h處交換值
byte temp = bytes [ l ];
bytes [ l ] = bytes [ h ];
bytes [ h ] = temp ;
}
//將位元組陣列轉換回字串
return new String(bytes);
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可變的
str = reverse(str);
系統。出。println(“給定字串的反轉是:” + str);
}
}
產量
反向 的 在 給定的 字串 是:sediuG avaJ
9.使用substring()方法
包 網。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingSubStringFunction {
//使用遞迴在Java中反轉字串的函式
private static String reverse(String str){
//基本情況:如果string為null或為空
如果(STR == 空 || 海峽。等號(“” ))
返回 str ;
//最後一個字元+遞迴剩下的字串
返回 str。的charAt(STR。長度()- 1)+ 反向(STR。子串(0,STR。長度()- 1));
}
public static void main(String [] args){
String str = “javaguides” ;
//字串是不可變的
str = reverse(str);
系統。出。println(“給定字串的反轉是:” + str);
}
}
產量
反向 的 在 給定的 字串 是:sediugavaj
10.使用遞迴
包 網。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingRecursion {
static int i = 0 ;
//使用靜態變數在Java中反轉字串的遞迴函式
private static void reverse(char [] str,int k){
//如果我們到達了字串的末尾
如果(ķ == STR。長度)
迴歸 ;
//遞迴下一個角色
反轉(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或為空
如果(STR == 空 || 海峽。等號(“” ))
返回 str ;
//將字串轉換為字元陣列
char [] A = str。toCharArray();
//反向字元陣列
反向(A,0);
//將字元陣列轉換為字串
return String。copyValueOf(A);
}
public static void main(String [] args){
String str = “Java Guides” ;
//字串是不可變的
str = reverse(str);
系統。出。println(“給定字串的反轉是:” + str);
}
}
產量
反向 的 在 給定的 字串 是:sediuG avaJ
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2221271/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用位運算、值交換等方式反轉java字串-共四種方法Java字串
- Python中列表和字串的反轉Python字串
- Python 中的反轉字串:reversed()、切片等Python字串
- LeetCode-345-反轉字串中的母音字母LeetCode字串
- 反轉字串(JavaScript)字串JavaScript
- JavaScript 字串反轉JavaScript字串
- JS中將一個值轉換為字串的3種方法JS字串
- Java中轉義HTML符號的四種方法JavaHTML符號
- Python 中字串拼接的 N 種方法Python字串
- 力扣之反轉字串中的單詞 III力扣字串
- Java中在迭代時新增元素的3種方法Java
- 在 Java 中初始化 List 的五種方法Java
- 華為-字串反轉字串
- Java中將Excel轉換為JSON的兩種方法JavaExcelJSON
- JavaScript 字串與json物件互轉的幾種方法JavaScript字串JSON物件
- Leedcode-反轉字串 II字串
- LeetCode-344-反轉字串LeetCode字串
- 字串或數字反轉字串
- LeetCode初級-反轉字串LeetCode字串
- 將一個字串進行反轉:將字串中指定部分進行反轉。比如“abcdefg”反轉為”abfedcg”字串
- JS字串轉換為JSON的四種方法筆記字串JSON筆記
- LeetCode每日一題: 反轉字串中的母音字母(No.345)LeetCode每日一題字串
- python中7種方法實現字串的拼接Python字串
- Day7(字串)|344.反轉字串 541.反轉字串II 54.替換數字字串
- 【演算法題】反轉連結串列的兩種方法演算法
- 【LeetCode_344】反轉字串_Python&Java_雙指標解法LeetCode字串PythonJava指標
- javascript中將數字轉為字串的方法JavaScript字串
- Java 中 CLOB 和字串之間的轉換Java字串
- JAVA字串轉日期或日期轉字串Java字串
- LeetCode每日一題:反轉字串中的單詞 III(No.557)LeetCode每日一題字串
- 在java中進行日期時間比較的4種方法Java
- 【java】int轉換成String的四種方法Java
- 簡單介紹四種Python 列表反轉顯示的方法Python
- 【JavaScript框架封裝】JavaScript中的文字字串的轉義和反轉義的實現JavaScript框架封裝字串
- 解析Json字串的三種方法JSON字串
- 在一串字串中Java使用正則匹配電話號碼的方法字串Java
- Java中的字串Java字串
- 影片直播app原始碼,JS使用陣列方法實現字串反轉APP原始碼JS陣列字串