如何在 Java 中進行反向字符串?
已發表: 2023-01-06字符串是字符序列,在 Java 中被視為對象。 它是 Java 中的一個對象,用於將數據存儲在字符數組中。 反轉的字符串稱為反轉字符串。 例如,'program' 字符串的反面是 'margorP'。
目錄
Java中字符串反轉背後的邏輯:
可以使用多種方法來反轉字符串,每種方法都使用不同的函數。 雖然使用的方法不同,但字符串反轉背後的基本過程幾乎相同。 使用的典型邏輯是:
- 使用用戶輸入或代碼輸入字符串。
- 從最後一個位置開始獲取字符串的字符並將它們保存在任何變量中。
- 顯示輸出。
從世界一流大學在線學習軟件開發課程。 獲得執行 PG 課程、高級證書課程或碩士課程,以快速推進您的職業生涯。
Java中反轉字符串的各種方法:
- 使用 StringBuffer 或 StringBuilder
- 使用反向迭代
- 使用 charAt() 方法
- 使用 ArrayList 對象
- 使用遞歸
- 將字符串轉換為字節
- 使用堆棧
讓我們詳細了解這些方法中的每一個。
軟件工程熱門課程和文章
熱門節目 | |||
軟件開發執行 PG 課程 - IIIT B | 區塊鏈證書課程 - PURDUE | 網絡安全證書計劃 - 普杜 | 計算機科學碩士 - IIIT B |
其他熱門文章 | |||
2021-22 年美國雲工程師薪資 | AWS 解決方案架構師在美國的薪水 | 美國的後端開發人員薪水 | 美國的前端開發人員薪水 |
Web開發人員在美國的薪水 | 2022 年 Scrum Master 面試問題 | 如何在 2022 年開始網絡安全職業? | 工程專業學生在美國的職業選擇 |
1. 通過 StringBuilder / StringBuffer
StringBuffer 或 StringBuilder 類有一個內置方法 reverse() 可以反轉字符串中的字符。 它以相反的順序替換字符的順序。 該方法是實現java中字符串反轉邏輯的靜態方法。
StringBuffer 和 StringBuilder 是 Java 中的兩個實用程序類,用於管理字符串操作的資源分配。
使用字符串緩衝區:
使用 StringBuffer 反轉字符串的 Java 程序:
公共類 ExampleofReverseString{
public static void main(String[] args) {
字符串 str1 = “蘋果”;
//在 rev 變量中存儲反轉的字符串順序
String rev = new StringBuffer(str1).reverse().toString();
//打印反轉前的字符串
System.out.println(“\反轉前的字符串為:”+str1);
//打印反轉後的字符串
System.out.println(“反轉後的字符串為:”+rev);
}
}
輸出:
反轉前的字符串是:Apple
反轉後的字符串為:elppA
在上面的示例中,作為輸入提供的字符串將使用 StringBuffer 進行緩衝。 然後使用 reverse() 方法將其反轉。 緩衝區反轉後,將使用 toString() 方法將其轉換為字符串。
使用字符串生成器:
與 StringBuffer 類相比,StringBuilder 類更受歡迎。 它更快而且不同步。
使用 StringBuilder 反轉字符串的 Java 程序:
公共類 ExampleofReverseString{
public static void main(String[] args) {
String str1 = “學校”;
//在 rev 變量中存儲反轉的字符串
String rev = new StringBuilder(str1).reverse().toString();
//打印反轉前的字符串
System.out.println(“\n反轉前的字符串:”+str1);
//打印反轉後的字符串
System.out.println(“反轉後的字符串:”+rev);
}
}
輸出:
反轉前的字符串:學校
反轉前的字符串:loohcS
在上面的代碼中,使用了 StringBuilder 類的對象。 相應的 StringBuilder 對象內存效率高、可變且執行速度快。 該對象調用內置的 reverse() 方法來提供所需的輸出。
2.通過反向迭代
使用反向迭代反轉字符串的 Java 程序:
公共類 StringReversal {
public static String reverseString(String st){
char ch[]=st.toCharArray();
字符串轉=””;
for(int i=ch.length-1;i>=0;i–)
{
rev+=ch[i];
}
返迴轉速;
}
}
公共類 TestStringReversal {
public static void main(String[] args) {
System.out.println(StringReversal.reverseString(“我是老師”));
System.out.println(StringReversal.reverseString(“我教英語科目”));
}
}
輸出:
我很高興
我 hcaet hsilgnE tcejbus
在上述java中的反向字符串程序中,輸入字符串的字符使用for循環從最後一個位置開始存儲在rev+變量中。 存儲所有字符後,反轉的字符串將顯示在輸出中。
可以使用While循環進行反向迭代,其代碼如下:
公共類 StringReversal {
public static void main(String[] args)
{
String stringInput = “這個字符串”;
int StrLength=stringInput.length();
而(StrLength > 0)
{
System.out.print(stringInput.charAt(StrLength -1));
長度——;
}
}
}
輸出:
GnirtS 西特
3. 使用 charAt() 方法
其Java程序如下:
公共類 ExampleofReverseString {
public static void main(String[] args) {
字符串 str = “學習 Java”;
//將反轉的字符串存儲在 revv 變量中
字符串 revv = “”;
//字符串的長度將存儲在len中
int len=str.length();
for(int i=len-1;i>=0;i–)
revv = revv + str.charAt(i);
//打印反轉前的字符串
System.out.println(“\n反轉操作前的字符串:”+str);
//打印反轉後的字符串
System.out.println(“反轉後的字符串:”+ revv);
}
}
輸出:
反轉操作前的字符串:學習Java
反轉操作前的字符串:avaJ nraeL
在這個反轉字符串的 java 程序中,輸入的字符串字符存儲在 revv 變量中,從最後一個位置開始使用 for 循環。 存儲所有字符後,反轉的字符串將反映在輸出中。
4.使用ArrayList對象
其Java程序如下:
導入 java.util.ArrayList;
導入 java.util.Collections;
導入java.util.List;
導入 java.util.ListIterator;
公共類 ExampleofReverseString {
public static void main(String[] args) {
String str = “享受編碼”;
//將輸入字符串轉換為字符數組
char ch[]=str.toCharArray();
// 將字符數組添加到 ArrayList 的對象
列表<字符> obj = new ArrayList<>();
對於(字符 c: ch)
obj.add(c);
// 將 ArrayList 的對像傳遞給集合
集合.reverse(obj);
//創建列表迭代器的對像以在列表上重複
ListIterator objnew = obj.listIterator();
//打印反轉前的字符串
System.out.println(“\n反轉操作前的字符串:”+ str);
//打印反轉後的字符串
System.out.println(“\n反轉後的字符串:”);
while (objnew.hasNext())
System.out.print(objnew.next());
}
}
輸出:
反轉操作前的字符串:Enjoy coding
反轉操作後的字符串:gnidoc yojnE
這個反轉字符串的 java 程序將輸入字符串的字符存儲在 ArrayList 對像中。 它在集合中使用 reverse() 方法進行反轉。 迭代器遍歷列表並打印反轉後的字符串。
5.使用遞歸
其Java程序如下:
公共類 ExampleofReverseString {
// 定義反轉函數
字符串轉速(字符串 str){
// 如果字符串的長度為零,則返回 null
如果(海峽長度()== 0)
{
返回 ” ”;
}
//否則返回以下方法產生的字符
返回 str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));
}
public static void main(String[] args)
{
//創建一個類的對象
ExampleofReverseString r = new ExampleofReverseString ();
//輸入字符串
String str = “Java 大師”;
//打印反轉前的字符串
System.out.println(“\n反轉操作前的字符串:”+ str);
//打印反轉後的字符串
System.out.println(“\n反轉後的字符串:” + r.revs(str));
}
輸出:
反轉操作前的字符串:Java精通
反轉操作後的字符串:avaJ ni retsaM
在此 Java 程序中生成了一個遞歸函數。 它檢查字符串的長度和十個反轉。 它的工作原理與java 中的反向函數相同。
6. 通過將字符串轉換為字節
它使用 getBytes() 方法將輸入字符串轉換或拆分為字節。 此時,字節數組長度等於輸入字符串的長度。 然後程序以相反的順序獲取字節並將它們保存在一個新的字節數組中。
在下面的代碼中,臨時生成了一個字節數組。 創建了雙字節數組 - 一個用於存儲轉換後的字節,另一個用於以相反順序保存結果。
其Java程序如下:
public static void main(String[] arg) {
字符串輸入值=“計算機”;
byte[] strByteArray = inputvalue.getBytes();
byte[] result = new byte[strByteArray.length];
// 在結果 byte[] 中倒序存儲結果
for (int i = 0; i < strByteArray.length; i++)
結果 [i] = strByteArray [strByteArray.length – i – 1];
System.out.println( "逆運算後的字符串為:" +new String(result));
}
輸出:
逆向操作後的字符串為:retupmoC
7) 使用堆棧
此方法涉及以下步驟,使用 Stack 數據結構反轉 Java 字符串。
- 創建一個沒有字符的堆棧。
- 使用 String.toCharArray() 方法將輸入字符串轉換為字符數組。 隨後,它將每個字符添加到堆棧中。
三. 從堆棧中檢索字符直到它為空,然後再次將字符分配到字符數組中。 所以,現在字符將以相反的順序到達。
- 使用 String.copyValueOf(char[]) 將字符數組轉換為字符串,最後返回新字符串。
其Java程序如下:
導入 java.util.Stack;
主類
{
公共靜態字符串反向(字符串 str)
{
// 檢查字符串是否為空或 null
如果(str == null || str.equals(“”)){
返回海峽;
}
// 生成一個空的字符棧
堆棧<字符> 堆棧 = 新堆棧<字符>();
// 將輸入字符串的所有字符加入棧中
char[] ch = str.toCharArray();
對於 (int i = 0; i < str.length(); i++) {
stack.push(ch[i]);
}
// 從索引 0 開始
詮釋米= 0;
// 從棧中取出字符,直到棧為空
while (!stack.isEmpty())
{
// 將每個檢索到的字符分配回字符數組
ch[m++] = stack.pop();
}
// 將字符數組轉換為字符串並返回
返回 String.copyValueOf(ch);
}
public static void main(String[] args)
{
String str = “科技創新”;
海峽=反向(海峽);
System.out.println(“輸入字符串的反序:” + str);
}
}
輸出
輸入字符串的反轉:ygolonhceT noitavonnI
使用 UpGrad 開始您的 Java 之旅
如果你想學習 Java,你必須了解核心 Java 概念。 為此,您可以攻讀 UpGrad 的計算機科學理學碩士學位。 它涵蓋的主題包括 Java 核心、OOPS 概念、Java 中的對象和類、Java 中的方法、Java 虛擬機、多態性、繼承、抽象、封裝等。您將獲得行業專家指導。 這些專家進行涵蓋課程和高級主題的交互式現場會議。
在 Java 中反轉字符串的最簡單方法是什麼?
在 Java 中反轉 String 的最簡單方法是使用 StringBuffer 類。 它支持一種稱為 reverse() 的方法,該方法反轉現有 StringBuffer 對象的內容並返回輸出 StringBuffer 對象。
Java中的遞歸方法是什麼?
調用自身的方法在 Java 中稱為遞歸方法。 相應的過程稱為遞歸。
String在Java中的應用有哪些?
在 Java 中,字符串可用於檢測代碼中的抄襲。 它們可用於編碼和解碼,以實現從發送方到接收方的安全數據傳輸。 字符串應用程序幫助您從匿名數據源中檢索信息。 此外,字符串及其算法應用程序為您提供改進的過濾器來解決近似後綴-前綴重疊問題。