我不知道我的代码有什么问题,我正在尝试检查单词是否是“ abecedarian”

问题描述 投票:-3回答:1

我已经根据我从Google找到的一些来源编写了此代码,由于某种原因,它显示了word.size()方法中的错误。错误提示找不到符号,但我已经为“ word”分配了一个字符串]

public static void main (String args[]) {

    String word = "agnosy";
    isAbecedarian (word);

}

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;
}
java string loops
1个回答
0
投票

正如其他人指出的那样,解决您问题的正确方法名称是'length()'

我采用了一种不同的方式来获得相同的结果。它只是按字母顺序对单词的字母进行排序,然后检查该单词是否与原始单词相等-如果单词是初学者,则对其进行排序将得到相同的单词。

import java.util.Arrays;

class Main {

  public static void main(String[] args) {
    String word = "agnosy";
    isAbecedarian (word);
  }

  public static boolean isAbecedarian (String word) {
    if(word != null){
      char letters[] = word.toCharArray();
      Arrays.sort(letters);
      return new String(letters).equalsIgnoreCase(word);        
    }
    return false;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.