2017-01-29 6 views
2

私は、コードバスの問題に取り組んでおり、文字列から文字を削除し、その文字なしで文字列を返そうとしています。以下は私のコードです。文字列を返さなければならないというエラーメッセージが表示され続けるうちに、何が問題なのか教えてください。コンパイルの問題 - 文字列を返す必要があります

public String missingChar(String str, int n) { 
    if (str.length() < n) { 
     int idx = str.indexOf(n); 
     String a = str.substring(0,idx); 
     String b = str.substring(idx+1, str.length()); 
     return a + b; 
    } 
} 

問題をコンパイルします。

Error: public String missingChar(String str, int n) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This method must return a result of type String

+4

'str.length()> = n'の場合、何も返しません... – rom1v

+1

' else return ...; 'のようなものが必要です – luk2302

答えて

1

他の回答と私のコメントはすでにあなたのコードにはelse caseのreturn文がありません。しかし、あなたのコードのロジックも非常に欠陥がある:

  • 行いませんint idx = str.indexOf(n);
  • が反転ロジックであれば全体

もたらすであろうこと:出力hlloになり

public String missingChar(String str, int n) { 
    if (n < str.length()){ 
     String a = str.substring(0,n); 
     String b = str.substring(n+1, str.length()); 
     return a + b; 
    } 
    return str; 
} 

与えられた入力の場合"hello", 1

nと最初の文字列の長さを比較しようとすると、虚偽の論理的結果が生じることに注意してください。長さと比較すると、nは文字列のインデックスになるはずですindexOfnと呼ぶのは全く意味がありません。同時に、nが実際に削除したい文字列の文字ですが、そのタイプはcharでなければならず、その文字列内に文字が見つからない場合はエラー処理が必要です。

+0

ありがとう、良い点。私は自分のコードを見直しました。私のコードは理にかなっています。 – Kingsfull123

4

あなたはstr.length() < n条件が

public String missingChar(String str, int n) { 
    if (str.length() < n) { 
     int idx = str.indexOf(n); 
     String a = str.substring(0,idx); 
     String b = str.substring(idx+1, str.length()); 
     return a + b; 
    } 

    return str; 
} 
0

を満たしていない場合でも、問題はすべてのリターンパスは文字列を返さなければならないということであるStringを返す必要があり、ここでは文字列を返します。

0

errあなたのメソッドは文字列を返さなければならない

または単純な/非常に明確である。この条件が満たされていない場合でも

if (str.length() < n){ 

を使用すると、戻り値との契約を満たすようにする方法を変更します。

public String missingChar(String str, int n) { 
    if (str.length() < n){ 
    int idx = str.indexOf(n); 
    String a = str.substring(0,idx); 
    String b = str.substring(idx+1, str.length()); 
    return a + b; 
    }else{ 
     return something; 
    } 
} 
-1

str.length()> = nの場合、戻り値はありません!

関連する問題