多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 字符串回文 – Java 数字回文示例 > 原文: [https://howtodoinjava.com/puzzles/java-string-palindrome-number-palindrome/](https://howtodoinjava.com/puzzles/java-string-palindrome-number-palindrome/) [**回文**](https://en.wikipedia.org/wiki/Palindrome "Palindrome")是一个单词,词组,数字或其他单元序列,可以在任一方向上以相同的方式读取,通常是否使用逗号,分隔符或其他单词分隔符*不是必需的*。 类似地,回文数是指如果所有数字都颠倒了就代表相同数字的那些数字(下划线可以忽略较大的数字,例如`1_00_00_001`)。 数字文字中的下划线是 [**Java7 功能**](//howtodoinjava.com/java-7/improved-formatted-numbers-in-java-7/ "formatted-numbers-in-java-7")中的新增内容。 ## 1\. Java 回文字符串示例 要检查**回文字符串**,请反转[字符串](https://howtodoinjava.com/java-string/)字符。 现在使用`String.equals()`方法来验证给定的字符串是否是回文。 #### 1.1 使用 Apache Commons `StringUtils`检查字符串回文 **Java 中用于字符串**的简单回文程序。 它也是 Java 中使用**反转方法**的回文程序。 ```java public class Main { public static void main(String[] args) { System.out.println( isPalindromeString("howtodoinjava") ); //false System.out.println( isPalindromeString("abcba") ); //true } public static boolean isPalindromeString(String originalString) { String reverse = StringUtils.reverse(originalString); return originalString.equals(reverse); } } ``` #### 1.2 使用`StringBuilder`检查字符串回文 同样的逻辑也可以应用于`StringBuffer`类。 ```java public class Main { public static void main(String[] args) { System.out.println( isPalindromeString("howtodoinjava") ); System.out.println( isPalindromeString("abcba") ); } public static boolean isPalindromeString(String originalString) { String reverse = new StringBuilder(originalString).reverse().toString(); return originalString.equals(reverse); } } ``` #### 1.3 用`for`循环检查字符串回文 使用[`for`循环](https://howtodoinjava.com/java/basics/for-loop-in-java/)和[`charAt()`](https://howtodoinjava.com/java/string/string-charat-method-example/)方法遍历最后一个索引的字符串字符来获取**反转字符串**,并创建新字符串。 仅当您在 Java 中检查**字符串回文而不使用反转方法**时,才使用此方法。 ```java public class Main { public static void main(String[] args) { System.out.println( isPalindromeString("howtodoinjava") ); System.out.println( isPalindromeString("abcba") ); } public static boolean isPalindromeString(String originalString) { String reverse = ""; int length = originalString.length(); for ( int i = length - 1; i >= 0; i-- ) reverse = reverse + originalString.charAt(i); return originalString.equals(reverse); } } ``` ## 2\. Java 回文数示例 为了验证给定数字是否为**回文数**是否为真,我们需要反转数字位数,如果两者相等或不相等,则与原始数字进行比较。 ```java package com.howtodoinjava.puzzle; public class PalindromeTest {     /**      * Test the actual code if it works correctly      * */     public static void main(String[] args)     {         System.out.println(checkIntegerPalindrome( 100 )); //false         System.out.println(checkIntegerPalindrome( 101 )); //true         System.out.println(checkIntegerPalindrome( 500045 )); //false         System.out.println(checkIntegerPalindrome( 50005 )); //true     }     /**      * This function will test the equality if a number and its reverse.      * @return true if number is palindrome else false      * */     public static boolean checkIntegerPalindrome(int number)     {         boolean isPalindrome = false;         if(number == reverse(number))         {             isPalindrome = true;         }         return isPalindrome;     }     /**      * This function will reverse a given number.      * @return reverse number      * */     public static int reverse(int number)     {         int reverse = 0;         int remainder = 0;         do {             remainder = number % 10;             reverse = reverse * 10 + remainder;             number = number / 10;         } while (number > 0);         return reverse;     } } 程序输出: false true false true ``` 学习愉快!