在 Java 中遞迴地反轉字串
遞迴是重複呼叫函式本身直到中斷條件滿足標準的過程。它允許使用者從自身呼叫函式本身。以下是使函式遞迴必須滿足的一些條件:
- 函式必須從同一個函式呼叫自身。
- 需要一個終止條件來阻止遞迴迴圈被重複呼叫。
- 遞迴在其動作過程中使用 Stack 資料結構。它在其儲存器中儲存變數和函式呼叫。
下面是在 Java 中使用遞迴反轉字串的程式碼塊。
import java.util.Scanner;
public class StringReverseUsingRecursion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter any String :");
String str = scanner.nextLine();
System.out.println("The reverse of the String is : " + recursiveReverse(str));
}
static String recursiveReverse(String input) {
if ((input == null) || (input.length() <= 1))
return input;
else {
return recursiveReverse(input.substring(1)) + input.charAt(0);
}
}
}
在上面的程式碼塊中,該類包含一個靜態方法和 main
方法。recursiveReverse()
方法是靜態遞迴函式,它使用遞迴來反轉字串。它接受一個輸入引數並返回一個字串值。
在 main
方法中,使用 new 關鍵字例項化 Scanner 類。Scanner 類的建構函式以 Input Stream 為引數,從輸入源掃描後產生輸入字串。
它還轉換預設字符集(即 UTF-8 標準集)中的位元組流。如果無法將資料轉換為預設字符集,建構函式將丟擲 IllegalArgumentException
。
System 是一個類 java.lang
包,它代表標準輸入流例項方法和變數。In
是開啟並準備提供輸入資料的輸入流的例項變數。
此流使用鍵盤輸入或使用者指定的其他輸入源。
nextLine()
函式返回當前行,不包括末尾的行分隔符。因此,這將在 str
變數中儲存使用者定義的輸入行。String 稍後傳遞給靜態遞迴方法。
靜態 recursiveReverse()
方法中的終止條件是檢查輸入是否為空或小於 1,然後返回輸入字串本身。
如果條件不滿足,它會再次呼叫函式本身,但使用不包括第零個字元的子字串。substring()
函式建立實際字串的子字串,並再次將較小的流傳遞給相同的方法。
因此它被迭代呼叫,最後,開始返回字元作為響應。
輸出:
Enter any String :
Hello
The reverse of the String is : olleH.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn