2016-11-28 10 views
0

初心者のJavaの例をいくつか解いていましたが、インデックスnの文字が削除された新しい文字列を返す必要があるという質問があります。例えばJavaの文字列内の文字を削除するには?

missingChar("kitten", 1) → "ktten" 

私は、文字列の最初の文字を削除する必要があります。

私はこれを試してみましたが、それはうまくいきませんでした:

for (int i=0;i<str.length()-1;i++){ 
    while (i==n){ 
     str=str.replaceFirst(String.valueOf(str.charAt(i)),""); 
     return str; 
    } 
} 

誰かが私のコードが間違っているものを私に言うことはできますか?ここで

+3

"しかし、それはうまくいかなかった"。何がうまくいかなかったのですか?あなたはどこにいるのですか?あなたは例外を取得していますか? – QBrute

+1

探している方法は[substring()](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int、%20int))です。 –

答えて

6

はあなたが欲しいものを行うための簡単な方法です:

String missingChar(String s, int i) { 
     return s.substring(0, i) + s.substring(i+1); 
    } 

あなたがあなたの質問に提供されたコードは、文字列全体の文字の最初の発生を置き換えます。そして、btw、ifはreturn文のためにwhileと同じ効果を持ちます。あなたは文字のインデックスを持っているので、forループも役に立たない(私はそれがnだと思う)

+0

ええ、私はループが不要だと思います。 'String a = str.substring(0、n); 文字列b = str.substring(n + 1、str.length()); 返信a + b' ありがとう! –

関連する問題