Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Kubson
8 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
1

Не работает цик(или indexOf()

30.12.2015, 15:50. Просмотров 879. Ответов 6
Метки нет (Все метки)

Суть кода ниже в том, чтобы находить в строке сочетания символов "ccc" и в них вставлять другой символ. Но программа исправляет только одно сочетание ccc(например в строке "сссaccc" получится "сасассс", вместо "сасасас").
Почему так происходит? Где ошибка? Подскажите пожалуйста!!
Java
1
2
3
4
5
6
7
8
for (int z = 1; z<=10; z++) {
 
                    pos = jkl.indexOf("ccc", pos);
 
                    if (pos >= 0) {
                        sb.setCharAt(pos+1, а);
                    }
            }
Заранее большое спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2015, 15:50
Ответы с готовыми решениями:

Поиск нескольких символов через indexOf
кусок кода рабочий private void processSMS(String paramString) { int i =...

Какой из методов рациональнее использовать: Array.prototype.indexOf() или String.prototype.indexOf()
функции передаётся буква алфавита в нижнем регистре и она должна вернуть...

Не работает indexOf()
Здравствуйте, проблема вот в чём, у меня есть длиннющая строковая переменная, в...

IndexOf не работает
&lt;SCRIPT&gt; function checktext() { var BSS=&quot;&lt;&gt;&amp;!*#$%^&amp;()_-=+?&amp;&quot;; ...

Медленно работает TStringList->IndexOf()
Всем привет. Имеется код //Количество строк в каждом файле 27000...

6
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
30.12.2015, 16:06 2
Kubson, а так не пойдёт?
Java
1
jkl = jkl.replaceAll("ccc", "cac");
0
Kubson
8 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
30.12.2015, 16:39  [ТС] 3
Я боюсь, что нет, этот вариант не подходит... Я бы объяснил почему, да в этом смысла нет...
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
30.12.2015, 17:17 4
Kubson, а я боюсь, что подходит... Я бы объяснил почему, да в этом смысла нет...
0
chizz
983 / 501 / 101
Регистрация: 19.03.2013
Сообщений: 3,107
Записей в блоге: 19
Завершенные тесты: 1
30.12.2015, 17:27 5
Лучший ответ Сообщение было отмечено Kubson как решение

Решение

Не знаю, как оно работает, но работает

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        String test_str = "cccaccc"; 
        String substr_test = "ccc";
        char in_value = 'a';
        StringBuffer sb = new StringBuffer(test_str);
        int pos =0;
        int pos_save=0;
        pos = test_str.indexOf(substr_test);        
        do {
            
            pos = test_str.indexOf(substr_test);
            if (pos>=0) 
                {
                sb.setCharAt(pos_save+pos+1, in_value);
                pos_save = pos_save+pos+substr_test.length();
                }
                
            if (pos<test_str.length()&&test_str.length()>=substr_test.length())
            {
            test_str = test_str.substring(pos+substr_test.length(),test_str.length());      
            }
            else
            {
                sb.setCharAt(pos_save+1, 'a');
                pos = -1;
            }
            
        } while (pos>=0 && test_str.length()>=substr_test.length());
        
    
        
        System.out.print(sb.toString());
1
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
30.12.2015, 18:11 6
Лучший ответ Сообщение было отмечено Kubson как решение

Решение

Kubson, попробуйте так

Java
1
2
3
4
5
6
7
8
9
private String replaceIt(String resource) {
        int indexOf = resource.indexOf("ccc");
        StringBuilder stringHolder = new StringBuilder(resource);
        while (indexOf != -1) {
            stringHolder.setCharAt(indexOf + 1, 'a');
            indexOf = resource.indexOf("ccc", indexOf + 1);
        }
        return stringHolder.toString();
    }
1
Kubson
8 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
30.12.2015, 22:27  [ТС] 7
Спасибо вам всем большое за помощь!
0
30.12.2015, 22:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2015, 22:27

IndexOf не работает в многострочном тексте?
string WebText = Web_Get_Data(&quot;https://vk.com/&quot;); string ip_h =...

Обращение через индекс Dictionary или IndexOf, что быстрее / производительнее?
Смотрите есть строка: string dic = &quot;abcdefghijklmnopqrstuvwxyz&quot;; мне...

Монитор не работает через VGA ,работает через встороенный адаптер .мне успокоиться или спасать комп .это видеокарта или другое?подскажите пожалуйста!
монитор не работает через vga.работает только через встроенный адаптер.мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru