java - 如何在Java中获取字符串的回文

标签 java charat

好的。我知道还有其他几个很好的程序可以检查字符串是否为回文。
但我正在尝试这段代码。问题是,由于我正在逐个字符地检查,每次字符匹配时都会打印出来
回文

但我只想打印一次palindrome

那么有没有办法让我可以完全遍历循环然后执行打印语句?

import java.util.Scanner;
public class Solution{
public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    String A = scan.next();

    for(int i =0;i<(A.length()/2);i++)
    {
        if(A.charAt(i)==A.charAt(A.length()-i-1))
            System.out.println("palindrome");
        else
            System.out.println("not palindrome");

    }
  }
}

最佳答案

我会保留一个 boolean 标志(默认为 true),如果不是,则设置为 false。然后在循环后检查你的标志。类似的东西,

boolean palindrome = true;
for(int i = 0; i < (A.length() / 2); i++)
{
    if (A.charAt(i) != A.charAt(A.length() - i - 1)) {
        palindrome = false;
        break;
    }
}
if (palindrome) {
     System.out.println("palindrome");
} else {
    System.out.println("not palindrome");
}

你可以用 ternary 来写最后一部分(或条件运算符 ? :)如

System.out.println(palindrome ? "palindrome" : "not palindrome");

并且,您可以替换循环为StringBuilder.reverse()喜欢

boolean palindrome = new StringBuilder(A).reverse().toString().equals(A);

所以,它可能是像这样的一条线

System.out.println(new StringBuilder(A).reverse().toString().equals(A) 
       ? "palindrome" : "not palindrome");

关于java - 如何在Java中获取字符串的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953885/

相关文章:

javascript - 在 PHP 子串中返回 �� 这些类型的字符?

Javascript:字符串字符的行

java - 简单计算器,其中创建了所有按钮并在 JButton 数组中添加了操作

java - 在相机预览上绘制矩形

java - @AfterTest 的 dependsOnMethods 找不到测试方法

java - 无法解析java中字符串中的字符

具有通用返回类型的访问者模式的 Java/Kotlin 强制转换异常

面向对象的 JavaWorld : Getters/Setters vs Builder

java - 如何查看字符串的第一个字符是否是某个字符,如果是,则执行操作(无法正常工作)