反向并比较字符串

时间:2016-04-13 03:38:54

标签: java string compare

我已经开始学习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;
        }
    }

}

4 个答案:

答案 0 :(得分:1)

stringReverse返回反转的String(它不会就位)。更新input,您的代码应按预期工作。像,

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

此外,checkString相当于

return b.equals(a);

答案 1 :(得分:1)

因为您将输入和原始传递给checkString()方法。那两个人拥有相同的价值观。很明显,你永远都会成真。

checkString(stringReverse(input), original);

您必须使用上述内容。

答案 2 :(得分:0)

您有不同的选择。

  1. 分配

    stringReverse(输入)

  2. 到像

    这样的变量
    input=stringReverse(input);
    
    检查前

    1. Imesha Sudasingha的回答。
    2. 问题是你正在将字符串反转为另一个变量,除非你明确指定它,否则它不会反映在你传递的字符串中。

答案 3 :(得分:0)

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

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