首頁 > Java > java教程 > 主體

Java 中的回文

王林
發布: 2024-08-30 16:26:05
原創
538 人瀏覽過

如果字串或數字顛倒後仍保持不變,則稱為回文。例如,“MADAM”是一個回文字串,因為即使顛倒過來也會拼寫為“MADAM”。但在“LUCKY”的情況下,該字串不是回文,因為反轉後它是“YKCUL”。一些回文數是 365563、48984、12321、171、88、90009、343,一些回文字串是 MADAM、MALAYALAM、LOL、DAD、MOM、C++&++C 等接下來讓我們來看看回文的邏輯和實作。在本主題中,我們將學習 Java 中的回文。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

Java 中回文背後的邏輯

為了檢查一個數字是否為回文數,可以使用以下演算法。

  • 輸入字串或數字,需要檢查它是否是回文。

例如,讓我們輸入數字 353。

  • 取得輸入數字並將其複製到臨時變數

353-> temp

  • 使用 for、while 或您選擇的任何方法反轉它。

Reversednumber: rev=353

  • 比較輸入的數字和反轉的數字。

如果它們相同,則該數字稱為回文數。

否則,該數字不是回文數。

If(inputnum==rev)
{ then palindrome }
Else not palindrome
登入後複製

如何使用各種方法測試回文?

有幾種方法可以檢查給定的輸入數字是否為回文。

  • For 循環
  • While 循環
  • 函式庫方法(用於字串)

讓我們詳細研究每一個:

1.使用for迴圈檢查回文數的程式

代碼:

//Java program to check whether a String is a Palindrome or not using For Loop
import java.util.*;
public class PalindromeNumberExample {
//main method
public static void main(String[] args) {
int r=0 ; //reversed Integer
int rem, num; //remainder and original number
Scanner s = new Scanner(System.in);
System.out.print("Enter number that has to be checked:");
num = s.nextInt();
//Store the number in a temporary variable
int temp = num;
//loop to find the reverse of a number
for( ;num != 0; num /= 10 )
{
rem = num % 10; // find the modulus of the number when divided by 10
r = r * 10 + rem;
}
//check whether the original and reversed numbers are equal
if (temp == r)
{
System.out.println(temp + " is input number");
System.out.println(r + " is the reversed number");
System.out.println("Since they are equal " + temp + " is a palindrome number");
}
else
{
System.out.println(temp + " is input number");
System.out.println(r + " is the reversed number");
System.out.println("Since they are not equal " + temp + " is not a palindrome number");
}
}
}
登入後複製

輸出 1:

Java 中的回文

這裡,由於353顛倒後是一樣的,所以被認為是回文。

輸出 2:

Java 中的回文

這裡,由於 234 顛倒後仍然不一樣,因此不被視為回文。

2.使用 While 迴圈檢查回文數的程式

代碼:

//Java program to check whether a number is a Palindrome or not using While Loop
import java.util.*;
public class PalindromeNumberExample {
public static void main(String[] args) {
int r=0, rem, num;
Scanner s = new Scanner(System.in);
System.out.print("Enter number that has to be checked:");
num = s.nextInt();
//Store the number in a temporary variable
int temp = num;
//loop to find the reverse of a number
while( num != 0 )
{
rem= num % 10;
r= r * 10 + rem;
num=num/10;
}
//check whether the original and reversed numbers are equal
if (temp == r)
{
System.out.println(temp + " is input number");
System.out.println(r + " is the reversed number");
System.out.println("Since they are equal " + temp + " is a palindrome number");
}
else
{
System.out.println(temp + " is input number");
System.out.println(r + " is the reversed number");
System.out.println("Since they are not equal " + temp + " is not a palindrome number");
}
}
}
登入後複製

輸出 1:

Java 中的回文

輸出 2:

Java 中的回文

3.使用函式庫方法檢查回文數的程式(對於字串)

代碼:

//Java program to check whether a String is a Palindrome or not using Library method
import java.util.*;
public class PalindromeNumberExample {
//Function to check whether the string is palindrome or not
public static void PalindromeCheck(String str)
{
// reverse the input String
String rev = new StringBuffer(str).reverse().toString();
// checks whether the string is palindrome or not
if (str.equals(rev))
{
System.out.println("input string is :" + str);
System.out.println("Reversed string is :" + rev);
System.out.println("Since the input and reversed string are equal, "+ str +" is a palindrome");
}
else
{
System.out.println("input string is :" + str);
System.out.println("Reversed string is :" + rev);
System.out.println("Since the input and reversed string are not equal, "+ str +" is not a palindrome");
}
}
public static void main (String[] args)
{
PalindromeCheck("MALAYALAM");
}
}
登入後複製

輸出:

Java 中的回文

這裡,輸入字串是在程式本身中傳遞的。

要檢查字串是否為回文,也可以使用以下程式。

代碼:

//Java program to check whether a String is a Palindrome or not
import java.util.*;
public class PalindromeNumberExample {
public static void main(String args[])
{
String st, rev = "";
Scanner sc = new Scanner(System.in);
System.out.println("Enter the string that has to be checked:");
st = sc.nextLine();
int len = st.length(); //length of the string
for ( int i = len- 1; i >= 0; i-- )
rev = rev + st.charAt(i);
if (st.equals(rev))
{
System.out.println("input string is :" + st);
System.out.println("Reversed string is :" + rev);
System.out.println("Since the input and reversed string are equal, "+ st +" is a palindrome");
}
else
{
System.out.println("input string is :" + st);
System.out.println("Reversed string is :" + rev);
System.out.println("Since the input and reversed string are not equal, "+ st +" is not a palindrome");
}
}
}
登入後複製

輸出:

Java 中的回文

結論

如果一個數字即使顛倒也保持不變,則稱為回文數。回文也可以在字串中檢查。回文數和字串有 MOM、MALAYALAM、DAD、LOL、232、1331 等。本文檔涵蓋了回文數的幾個方面,如演算法、方法、實作等。

以上是Java 中的回文的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!