2

我的目标是返回一个由每个字母组成的字符串,只要该字母在字母表中比其前一个字母晚,假设单词是小写的。问题是,我什至无法对此进行测试,因为我收到了一个错误(在标题中)并且我不确定它是如何发生的。我可以帮忙吗?

这是我的代码:

class Main {
    static String alphabetical(String str)
    {
      String alpha="abcdefghijklmnopqrstuvwxyz";
      String betical="";
        for(int k=0;k<str.length();k++){
          for (int i=0;k<alpha.length();i++){
            if(str.charAt(k)>=alpha.charAt(i)){
              betical+=str.charAt(k);
            }
          }
        }
        return betical;
    }
    //test case below (dont change):
    public static void main(String[] args){
        System.out.println(alphabetical("adatplqzh")); //result should be "adtz"
    }
}
4

2 回答 2

2

根据评论,您应该更改for (int i=0; k< alpha.length(); i++)for(int i=0; i< alpha.length(); i++) 修改您的条件,

 if(str.charAt(k)==alpha.charAt(i)){    
                   betical+=str.charAt(k);
                }

它会给出所需的输出

于 2017-09-15T17:38:35.847 回答
0

你的内循环看起来不对,

for (int i=0;k<alpha.length();i++){

应该for (int i=0;i<alpha.length();i++)

于 2017-09-16T06:54:17.247 回答