我已经根据我从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;
}
正如其他人指出的那样,解决您问题的正确方法名称是'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;
}
}