我正在尝试使用compareTo

时间:2015-04-25 14:30:08

标签: java string loops compareto

我想保持我的程序几乎一样。 我使用了很多String方法,如charAtsubstringindexOf。 如果单词中的字母按字母顺序出现,则说一个单词是“初学者”。

import java.util.*;

public class Abecedarian{
    public static void main( String[] args ){
        String word=getWord();

    }

    public static String getWord(){
        Scanner keyboard = new Scanner(System.in);
        String word;
        System.out.print("Enter a word: ");
        word=keyboard.nextLine();
        return word;
    }

    public static boolean isAbecedarian(String word){

2 个答案:

答案 0 :(得分:2)

您可以迭代单词中的字符,并确保它们按升序字母顺序排列:

public static boolean isAbecedarian (String word) {
    int length = word.size();
    if (length <= 1) {
        return true;
    }

    word = word.toLowerCase(); // just in case

    char prev; 
    char curr;

    for (int i = 1; i < length; ++i) {
        prev = word.charAt(i - 1);
        curr = word.charAt(0);
        if (prev > curr) {
            return false;
        }
    }

    return true;
}

答案 1 :(得分:0)

尝试使用:

if (word.compareTo("abecedarian") == 0) {
   //yes it is equal
}

使用String的equals方法检查相等性的更好方法如下:

if ("abecedarian".equals(word)) {
    ...
}