2016-11-28 3 views
0

Я решал некоторые начинающие примеры Java, и есть вопрос, для которого я должен вернуть новую строку, где символ с индексом n был удален.Как удалить символ в String в 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, a if будет иметь тот же эффект, что и while из-за оператора return. Цикл for также бесполезен, потому что у вас есть индекс символа (я думаю, это n?)

+0

Да, я думаю, что петли не нужны 'String a = str.substring (0, n); Строка b = str.substring (n + 1, str.length()); возвращение a + b' работал, спасибо! –

Смежные вопросы