反转并比较字符串



我已经开始学习java了,遇到了一些麻烦。只是想知道为什么我的比较字符串函数不起作用,并且总是返回true;

该程序的目的是获取一个字符串的输入,反转该字符串,并查看该字符串是否与原始输入(回文)相同。

import java.util.Scanner;
public class palinedromeString {

    private static Scanner keyboard;
    public static void main(String[] args) {
        System.out.println("Please enter a Palindrome");
        keyboard = new Scanner(System.in);
        String input = keyboard.next();
        String original = input;
        System.out.println("You entered: " + original);
        System.out.println("Your String reversed is:" + " " + stringReverse(input));
        System.out.println(checkString(input, original));
    }
    public static String stringReverse(String a) {
        String result = "";
        for(int i = a.length()-1; i>=0; i--){
            result = result + a.charAt(i);
        }

        return result;
    }
    public static boolean checkString(String a, String b){
        if(b.equals(a)){
            return true;
        }
        else{
        return false;
        }
    }
}

stringReverse返回反转的String(它不在适当位置操作)。更新input,您的代码应该可以按预期工作。类似

input = stringReverse(input);
System.out.println("Your String reversed is:" + " " + input);

此外,checkString等效于

return b.equals(a);

因为您将输入和原始传递给checkString()方法。这两者的价值观相同。很明显,你永远都是对的。

checkString(stringReverse(input), original);

您必须使用以上内容。

您有不同的选项。

  1. 分配

    字符串反向(输入)

到像这样的变量

input=stringReverse(input);

检查之前

  1. 伊梅莎·苏达辛哈的回答

问题是,您正在将字符串反转为另一个变量,除非您显式分配它,否则它不会反映在您传递的字符串中。

checkString(input, original)方法中,两个参数都有相同的值,因此它总是返回true
你必须像这样传递原始和反转的字符串:

String reversedStr = stringReverse(input);
checkString(reversedStr , original);

相关内容

  • 没有找到相关文章

最新更新