使用if语句检测以相同字母开头和结尾的单词

时间:2013-10-30 13:59:20

标签: java string if-statement input java.util.scanner

我正在尝试使用扫描程序创建一个程序,该程序接收来自用户的输入并确定输入是否以相同的字符开头和结尾。

import java.util.Scanner;
public class L7E6{
    public static void main(String[]args){
        String word;
        Scanner keyboard = new Scanner(System.in);

        System.out.println("Please type a word: ");
        word = keyboard.nextLine();

        if (word.charAt(0).equals(word.length()-1)){
            System.out.println("The word "+word+" begins and ends with the character "+word.charAt(0));
        }
        else{
            System.out.println("The word "+word+" begins with "+word.charAt(0)+" and ends with "+    (word.length()-1)+" these characters are not the same.");
        }
    }
} 

我之前使用过charAt(0).length()-1确定了第一个和最后一个字符,但它似乎没有在这里工作。

6 个答案:

答案 0 :(得分:2)

也许你应该做if (word.charAt(0).equals(word.charAt(word.length()-1))){...}。在您的代码中,您将第一个字符与数字进行比较。

答案 1 :(得分:0)

您甚至可以这样做,因为您正在比较chars

if (word.charAt(0) == word.charAt(word.length()-1)) {
...
}

答案 2 :(得分:0)

if(str.charAt(0)==str.charAt(str.length()-1)){
            System.out.println("equal");
        }

答案 3 :(得分:0)

还没人建议:

if ( word.endsWith(String.valueOf(word.charAt(0))) )
{
    System.out.println("Success!");
}

这不会处理null字符串,但会处理空字符串。

答案 4 :(得分:-1)

您可以使用正则表达式:

,而不是使用字母索引
if (word.matches("(.).*\\1|.") {

正则表达式的第一部分使用对捕获的第一个字母的反向引用来断言第一个和最后一个字母是相同的。
“|。” (意思是“或单个字符”)用于处理单个字母单词的边缘情况。

答案 5 :(得分:-1)

如果(word.charAt(0)==(word.charAt(word.length()-1))) 这将起作用。 equals()仅用于检查字符串的相等性。