2017-01-25 3 views
0

Я пытаюсь запустить цикл, чтобы удалить некоторые символы из строки. но когда я запускаю следующий код, я получаю вывод (I on) только с первого запуска. Я не получаю остальную часть строки. Может кто-то, пожалуйста, помогите, что мне нужно добавить здесь? только показывает результат первой итерации. СпасибоУдалить символы из строкового построителя

someStr = "I don't know this"; 
StringBuilder sb = new StringBuilder(someStr); 
int n = 3 
for (int i = n - 1; i < sb.length(); i = n + 1) { 
    sb = sb.deleteCharAt(i); 
} 
System.out.println(sb.toString()); 
+4

Что такое 'n'? ... –

+1

Проверьте, что ваш прибавка заявление фактически делает – Taelsin

+0

п может быть любым целым числом например 2,3,4 и т. д. – user3396478

ответ

1

Третья часть оператора for - это инструкция, которая должна увеличивать или уменьшать ваш индекс.

Там, всегда 4.

Чтобы яснее:

1st iteration : i = 2 => you remove the 'd', your string is now "I on't know this" 

2nd iteration : i = 4 => you remove the ''', your string is now "I ont know this" 

3rd iteration : i = 4 => you remove the 't', your string is now "I on know this" 

4th iteration : i = 4 => you remove the ' ', your string is now "I onknow this" 

...

0

Почему бы не использовать String.replaceAll()?

someStr = "I don't know this"; 
System.out.print("Output :"); 
System.out.println(someStr .replaceAll("t", "")); 
0

Если вы хотите удалить символы из строки, я рекомендую вам использовать Regex. Это пример для замены пустых пружин символы, которые нужно удалить:

public static String cleanWhitPattern(String sample, String , String regex) { 

    if (sample != null && regex != null) { 
     Pattern pattern = Pattern.compile(regex); 
     Matcher matcher = pattern.matcher(sample); 

     if (matcher.find()) { 
      return matcher.replaceAll(""); 
     } 

     return sample; 
    } 

    return null; 
} 

Теперь вы просто вызовите этот метод с требуемой схеме:

System.out.print(cleanWithPattern("I don't know this", "o*")); 

И результат должен быть таким:

I dn't knw this

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