Java没有正确显示字符串的最后一个字母?

时间:2013-10-17 21:12:39

标签: java

所以我有这个小程序,它需要做的就是检查姓氏的最后一个字母是否是" s"。如果它是一个" s"它会将姓氏改为复数 例
史密斯=史密斯的 Smiths = Smiths'

将姓氏更改为复数。简单吧?似乎是这样,但是我的if语句没有检测到最后一个字母是" s"

这里有一些代码

import javax.swing.JOptionPane;


public class Lastname {
public static void main(String[] args) {

    String messageText = null;
    String title = null;
    int messageType = 0;
    String lastName = "";
    String pluralLastName = "";

    Input input;

    input = new Input();

    messageText = "Please enter a last name. I'll make it plural.";
    title = "Plural Last Names";
    messageType = 3;

    lastName = input.getString(messageText,title,messageType);



    int intLength = lastName.length();
    String lastLetter = lastName.substring(intLength- 1);
    System.out.println("The last letter is: " + lastLetter);

    if (lastLetter.equals('s'))
        JOptionPane.showMessageDialog(null, "The last name entered as plural is " + lastName + "'" );
    else 
        JOptionPane.showMessageDialog(null, "The last name entered as plural is " + lastName + "'s" );




}}

if语句总是只添加一个""""对一切。

2 个答案:

答案 0 :(得分:4)

您需要使用双引号来表示String字面值。

if (lastLetter.equals("s"))

否则,您要将StringCharacter进行比较,false将始终返回{{1}}。

答案 1 :(得分:0)

您可以比较字符:

,而不是比较字符串
char lastLetter = lastName.charAt(intLength- 1);
System.out.println("The last letter is: " + lastLetter);

if (lastLetter == 's')

现在,您正在将字符串与字符进行比较。