为什么赢得if语句执行?

时间:2016-10-09 11:23:48

标签: java

我用Java写了一个简单的程序,后面写了一个字。试图检查“你好”是否有效。在if - 语句中,我正在检查该字符串是否等于“olleh”。任何人都可以看到为什么if语句不会执行。

public class MyProgram {

    public static void main(String[] args) {
        String x = "hello";
        System.out.println(back(x));
    }

    public static String back(String str) {
        String y = " ";
        String temp = " ";
        for (int i = str.length() - 1; i >= 0; i--) {
            char lets = str.charAt(i);
            y += Character.toString(lets);
            System.out.println(y);
            if (y.equals("olleh")) {
                System.out.println("nice");
            }
        }
        return y;
    }

}

2 个答案:

答案 0 :(得分:0)

如果您将y变量初始化为空字符串而不是空格,则您的if语句将执行并打印" nice"。此外,您不需要temp字符串,因为您不能使用它。您可能希望返回还原的字符串(或者您可以使您的方法无效并删除return语句)。

public static String back(String str) {
    String y = "";
    for (int i = str.length() - 1; i >= 0; i--) {
        char lets = str.charAt(i);
        y += Character.toString(lets);
        System.out.println(y);
        if (y.equals("olleh")) {
            System.out.println("nice");
        }
    }
    return y;
}

顺便说一下,当您在循环中连接字符串时,最好使用StringBuilder

答案 1 :(得分:0)

试试这个会起作用

 public class MyProgram
    {
    public static void main(String[] args)
    {
    String  x = "hello";



    System.out.println(back(x));





    }


      public static String back(String str )
      {

          String temp = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            char lets = str.charAt(i);
            temp = temp + lets;

        }

        if (temp.equals("olleh")) {
            System.out.println("nice");
        }
        return temp;

    }
    }