ときそれが必要なコード、まだバージョンは1つの文字列を返しません。

パトリシアManarazan:

クラスの演習では、私の友人と私の両方が類似したコードを書きました。鉱山が出ていますしながら、彼女は動作します:

エラー:このメソッドは、java.lang.String型の結果を返す必要があります

彼女のコード:

 public static String alphaString (String a, String b) {

    for (int i=0; i<a.length(); i++){
      if ((int)(a.charAt(i)) < ((int)(b.charAt(i)))) {
        return a;
      }
      if ((int)(a.charAt(i)) > ((int)(b.charAt(i)))) {  
        return b;
      }
    }

    return ("these are the same words") ;

  }

私のコード:

2つの文字列を取り、アルファベットで最初に来るものを返す//方法

// alphaString( "バナナ"、 "りんご") - > "りんご"

// alphaString( "蛇"、 "リス") - > "蛇"。

public static String alphaString(String s1, String s2) {


for (int i = 0; i<s1.length(); i++ ) {
    if (s1.charAt(i)<s2.charAt(i)) {
        return s1;
    }
    if (s1.charAt(i)>s2.charAt(i)){
        return s2;

    }


}

(私はそれが必要だとは思わないが)今、私は彼女が(int)を使用していることを私たちの変数が異なって命名されていることを伝えることができます。彼女のコードが動作し、鉱山ではない理由を私は理解していません。私も(int)を追加し、コードをさらに近づけるしようとすると、私はまだエラーを取得します。

それはあるかもしれない、なぜ誰もがどんな考えを持っていますか?

エリオットの新鮮:

あなたが欠落しているように見えるデフォルトのリターンを"these are the same words"あなたの両方がループ(またはあなたのどちらも使用することを選んだ理由でこれを実装するために選んだ理由は明らかではありませんelse)。かかわらず、StringであるComparable私は単純にするだろうので、

public static String alphaString(String s1, String s2) {
    int c = s1.compareTo(s2);
    if (c < 0) {
        return s1;
    } else if (c > 0) {
        return s2;
    }
    return "these are the same words";
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=207061&siteId=1