Java 比较字符串的最后一个字符在Android studio中不起作用

Java 比较字符串的最后一个字符在Android studio中不起作用,java,android,Java,Android,我正在制作一个android应用程序,以简化时间编码。我对它进行了编程,这样每当我输入数字时,它都会在上午输出时间。如果我在这些数字的末尾加上一个“p”,它就会在末尾加上一个下午 sat_amin.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, Key

我正在制作一个android应用程序,以简化时间编码。我对它进行了编程,这样每当我输入数字时,它都会在上午输出时间。如果我在这些数字的末尾加上一个“p”,它就会在末尾加上一个下午

sat_amin.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            EditText sat_amin = (EditText) findViewById(R.id.asd);
            TextView dsa = (TextView) findViewById(R.id.dsa);
            String satamin = sat_amin.getText().toString();
            int satamln = satamin.length();
            String last = satamin.substring(satamin.length() - 1);
            String p = "p";

            switch(satamln) {
                case 1:
                    sat_amin.setText("12:0" + satamin + " AM");
                    break;

                case 2:
                    if (last == p) {
                        sat_amin.setText("12:0" + satamin + " PM");
                    } else {
                        sat_amin.setText("12:" + satamin + " AM");
                    }
                    break;

                case 3:
                    if (last == p) {
                        sat_amin.setText("12:" + satamin + " PM");
                    } else {
                        sat_amin.setText("0" + satamin.substring(0, 1) + ":" + satamin.substring(1) + " AM");
                    }
                    break;

                case 4:
                    if (last == p) {
                        sat_amin.setText("0" + satamin.substring(0, 1) + ":" + satamin.substring(1, 3) + " PM");
                    } else {
                        sat_amin.setText(satamin.substring(0, 2) + ":" + satamin.substring(2) + " AM");
                    }
                    break;

                case 5:
                    if (last == p) {
                        sat_amin.setText(satamin.substring(0, 2) + ":" + satamin.substring(2, 4) + " PM");
                    } else {
                        sat_amin.setText(satamin.substring(0, 1) + ":" + satamin.substring(1, 3) + ":" + satamin.substring(3, 5) + " AM");
                    }
                    break;

                default:
                    sat_amin.setText("");
                    break;
            }



            return false;
        }
    });

当我运行应用程序时,代码的AM部分工作正常,但当我添加“p”时,它不会在if语句中进行比较,“p”被输出,就好像整个字符串最后没有“p”一样。

看起来你想知道last和p是否相等,而不是它们是否是相同的对象(具有相同的引用):

在这种情况下,您应该使用
equals
而不是
=

if (last.equals(p)) {
    sat_amin.setText("12:0" + satamin + " PM");
} else {
    sat_amin.setText("12:" + satamin + " AM");
}

欢迎来到Stackoverflow。请尝试创建一个。这使得回答这个问题更容易。
if (last.equals(p)) {
    sat_amin.setText("12:0" + satamin + " PM");
} else {
    sat_amin.setText("12:" + satamin + " AM");
}