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

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

30.12.2015, 15:50. Просмотров 915. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2015, 15:50
Ответы с готовыми решениями:

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

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

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

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

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

6
YuraAAA
1592 / 1328 / 287
Регистрация: 25.10.2009
Сообщений: 3,466
Записей в блоге: 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,667
Завершенные тесты: 1
30.12.2015, 17:17 4
Kubson, а я боюсь, что подходит... Я бы объяснил почему, да в этом смысла нет...
0
chizz
987 / 509 / 102
Регистрация: 19.03.2013
Сообщений: 3,108
Записей в блоге: 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
1592 / 1328 / 287
Регистрация: 25.10.2009
Сообщений: 3,466
Записей в блоге: 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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2015, 22:27

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

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

IndexOf
Всем здравствуйте. Очередной вопрос от чайника. ) Есть var x = 5 \\или любое другое число ...


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

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

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