Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
#1

Поиск нескольких символов через indexOf - Программирование Android

04.11.2014, 00:29. Просмотров 660. Ответов 17
Метки нет (Все метки)

кусок кода рабочий

Java
1
2
private void processSMS(String paramString) {
        int i = paramString.indexOf('д');
но как только добавляю ещё один символ перестаёт работать и не компилируется
Java
1
2
private void processSMS(String paramString) {
        int i = paramString.indexOf('дД');
ЧТо можно сделать? мне нужно что бы искало несколько символов, а не один.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2014, 00:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск нескольких символов через indexOf (Программирование Android):

Не работает цик(или indexOf() - Программирование Android
Суть кода ниже в том, чтобы находить в строке сочетания символов "ccc" и в них вставлять другой символ. Но программа исправляет только одно...

indexOf и анализ строки символов - Java SE
Нужно подсчитать количество слов в вводимой строке и количество слов начинающихся на заданную букву. Как вообще использовать indexOf для...

IndexOf поиск - Delphi
Я чето не совсем понял IndexOf он только целые строки ищет? Возьмем простой пример, у меня есть список строк: лена вася ...

Получение нескольких записей через поиск - Delphi БД
Добрый день! Есть база на Access к которой подключаюсь через ADO. Нужно произвести поиск с учетом 3 полей и все найденные записи...

Символ не ищется в строке через IndexOf - C++/CLI WinForms
Дорогие друзья, есть строка которую надо обработать, но он почему то не ищет нужный мне символ через IndexOf. не понимаю, почему: ...

Как найти много текста через IndexOf? - C#
Вот например почитав про этот метод что он ищет с 0вого индекса первое вхождение которое сходится. А если у меня вхождений много как мне...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.11.2014, 12:50 #2
walkover, а что, нынче строки выделяются апострофами? В апострофах выделяются только отдельные символы. Используйте кавычки.
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
11.11.2014, 21:39  [ТС] #3
проблема в том что я пробовал использовать кавычки! это самое первое, что мне пришло в голову, всё бы нечего, но не работает

Добавлено через 2 часа 2 минуты
в общем я маленько не правильно указал, после дД есть пробел, тобишь "дД " получается что не видит пробел, копирует сразу после "дД" а надо что бы копировала после "дД ", как сделать?
например дД полез5678, надо что бы скопировало "полез56" но оно копирует " полез5" как можно убрать пробел?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.11.2014, 09:35 #4
walkover, если вы используете substring, то первый аргумент просто увеличьте на 1.

Добавлено через 19 секунд
Либо используйте метод trim.
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
12.11.2014, 12:52  [ТС] #5
Цитата Сообщение от CoolMind Посмотреть сообщение
walkover, если вы используете substring, то первый аргумент просто увеличьте на 1.
Добавлено через 19 секунд
Либо используйте метод trim.
Javascript
1
2
3
message = paramString.substring(i + 1, i + 8);
                    Log.d("SMSBroadcastReceiver", message);
                    sendSMS(telephoneDirector, message);
вот так у меня, первый аргумент пробовал увеличить на 1, не чего не вышло, всё тоже самое. А так применить метод trim?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.11.2014, 13:27 #6
walkover, честно говоря, из кода не видно, какая строка была на входе и какой стала. Вроде, метод trim применяется просто (он отбрасывает конечные пробелы): messsage = paramString.substring(i + 1, i + 8).trim();
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 13:28 #7
walkover, не понятно что есть, и что должно получится)
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
12.11.2014, 13:41  [ТС] #8
Цитата Сообщение от CoolMind Посмотреть сообщение
messsage = paramString.substring(i + 1, i + 8).trim();
вооо, спасибо))) а я даже и не думал что туда его надо, слушай, а он отбрасывает только конечные пробелы или впереди тоже? проблема в том что мне нужно убрать пробел перед нужными символами, к примеру " стр01" нужно что бы отправляло "стр01" без пробела впереди.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 13:44 #9
walkover,
Java
1
2
String paramString = "    стр01   ";
String message = paramString.replaceAll(" ", "");// "стр01"
И всё, все пробелы исчезнут.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.11.2014, 13:50 #10
walkover, да, trim отбрасывает и начальные, и конечные пробелы. Если это то, что вам требуется, конечно. Но вы же легко можете попробовать.

Добавлено через 1 минуту
http://www.tutorialspoint.com/java/java_string_trim.htm
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
12.11.2014, 14:04  [ТС] #11
Цитата Сообщение от Spelcrawler Посмотреть сообщение
walkover,
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
String paramString = " * *стр01 * ";
String message = paramString.replaceAll(" ", "");// "стр01"
И всё, все пробелы исчезнут.
Да там дело в том, что прога ищет допустим слово "стр01" и копирует допустим 7 символов после него, если проще то есть фраза стр01 1234567890, надо просто что бы она искала слово стр01 и копировала после него 7 символом 1234567, а она копирует пробел+123456, вот я и подумал, что надо что бы она копировала 8 символов, тобишь пробел+1234567 и в итоге уберала пробел и отправляла только 1234567 без пробела. trim так сделает же да? если просто сделать messsage = paramString.substring(i + 1, i + 8).trim(); . Я просто щас проверить не могу, нет доступа к эклипсу с исходником.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 14:19 #12
Если правильно вас понял - я бы сделал так:

Java
1
2
3
4
5
6
7
8
9
10
11
String paramString = "стр01 1234567890 стр02 1234567890 стр03 1234567890";//Я так понимаю исходный файл
        String delimiter = " ";
        String key = "стр01";
        String message;
        String[] paramStringArray = paramString.split(delimiter);
        
        for(int i = 0; i < paramStringArray.length; i++){
            if(paramStringArray[i].equals(key)){
                message = paramStringArray[i + 1];
            }
        }
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.11.2014, 14:21 #13
walkover, понятно. Тут 2 варианта. Либо вы находите сначала позицию "стр01", затем находите позицию пробела, отсчитывая от позиции "стр01" (это плохой вариант), либо вы находите позицию "стр01" и прибавляете к ней "стр01".length() + 1, т.к. вы ещё исключаете один пробел. В общем, не с той позиции подстроку искали.
walkover
0 / 0 / 0
Регистрация: 04.11.2014
Сообщений: 7
12.11.2014, 14:52  [ТС] #14
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Если правильно вас понял - я бы сделал так:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
String paramString = "стр01 1234567890 стр02 1234567890 стр03 1234567890";//Я так понимаю исходный файл
* * * * String delimiter = " ";
* * * * String key = "стр01";
* * * * String message;
* * * * String[] paramStringArray = paramString.split(delimiter);
for(int i = 0; i < paramStringArray.length; i++){
* * * * * * if(paramStringArray[i].equals(key)){
* * * * * * * * message = paramStringArray[i + 1];
* * * * * * }
* * * * }
число 1234567890 постоянно разные, тобишь 454353459349 или 457545467546 и т.д.

Добавлено через 1 минуту
Цитата Сообщение от CoolMind Посмотреть сообщение
walkover, понятно. Тут 2 варианта. Либо вы находите сначала позицию "стр01", затем находите позицию пробела, отсчитывая от позиции "стр01" (это плохой вариант), либо вы находите позицию "стр01" и прибавляете к ней "стр01".length() + 1, т.к. вы ещё исключаете один пробел. В общем, не с той позиции подстроку искали.
очень интересно)))) вот так и попробую, ну и ещё попробую что бы тупо убирало пробелы. отпишу о результате.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 15:03 #15
Цитата Сообщение от walkover Посмотреть сообщение
число 1234567890 постоянно разные, тобишь 454353459349 или 457545467546 и т.д.
Это не важно. Все нормально отработает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2014, 15:03
Привет! Вот еще темы с ответами:

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

Вставка в строку нескольких символов и удаление символов из строки - VBA
не могу найти информацию про это:( какими операторами это делается?

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

Записать последовательность символов в текстовый файл, вставляя символы перевода строки через каждые 40 символов - Pascal ABC
Дана последовательность символов, заканчивающаяся точкой и вводимая пользователем с клавиатуры. Необходимо записать её в текстовый файл,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.11.2014, 15:03
Ответ Создать тему
Опции темы

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