我已经使用StringBuilder类用java编写了回文代码,但它不起作用?
我写了一个检查回文的代码,但是它将所有输入显示为回文我已经使用StringBuilder类用java编写了回文代码,但它不起作用?,java,Java,我写了一个检查回文的代码,但是它将所有输入显示为回文 class Solution { public static void main(String[] args) { String a = "shubham", reverse=""; StringBuilder input = new StringBuilder(); input.append(a); System.out.println("Value of a:-"+a); System.out.println("V
class Solution {
public static void main(String[] args) {
String a = "shubham", reverse="";
StringBuilder input = new StringBuilder();
input.append(a);
System.out.println("Value of a:-"+a);
System.out.println("Value of b:-"+input.reverse().toString());
if(a.equals(input.reverse().toString())) {
System.out.println("Given input is palidrome");
}
else {
System.out.println("Given input is not palidrome");
}
}
上面的输出是:
a值:-shubham
b值:-mahbuhs
给定的输入是回文
StringBuilder.reverse是一个有状态操作,这意味着input.reverse==input将为true。它只是返回这个
因此,当您反转打印它,然后稍后再次反转以进行比较时,它将处于初始位置。这意味着它将等于a
当您删除打印语句时,它将起作用。或者,如果要打印它,只需删除if语句中的反向调用:
if (a.equals(input.toString()) {
反向操作应用于对象本身,但不会返回修改后的副本
System.out.println("Value of b:-"+input); // shubham
input.reverse();
System.out.println("Value of b:-"+input); // mahbuhs
input.reverse();
System.out.println("Value of b:-"+input); // shubham
做
怎么不工作?你能举一个例子,说明它没有给出预期的输出吗?是的,它没有给出预期的输出。你把它颠倒了两次。我得到了它。
String a = "shubham", reverse="";
StringBuilder input = new StringBuilder();
input.append(a);
System.out.println("Value of a:-" + a);
System.out.println("Value of b:-" + input);
input.reverse();
if(a.equals(input.toString())) {
System.out.println("Given input is palidrome");
}else {
System.out.println("Given input is not palidrome");
}