RegEx для сопоставления строк, которые имеют только один C - PullRequest
4 голосов
/ 20 января 2011

Я ищу несколько советов о том, как взять строку вроде:

KIGABCCA TQABCCAXT
GABCCASZYU GZTTABCCA    MHNBABCCA   CLZGABCA    ABCCALZH
ABCCADQRNS VIZABCCA GABCCAG
UEKABCCA KBTOABCCA  GABCCAMFFJ  HABCCAISOJ  OFJJABCCA   HPABCCA
WBXRABCCA
ABCCAKH
VABCCAJX WBDOABCCA ABCCAWM GCABCA   QHRABCCA
ABCCAMDDD   WPABCCAD    OGABCCA
TVABCCA JGLABCA
IUABCCA

и вернуть всю строку, содержащую только один C.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Я НЕ ИЩУ РЕШЕНИЯ!

Просто несколько указателей или описание того типа конструкций, на которые я должен смотреть.

Я трудился над этим целую вечность и из-за этого приблизился к тому, чтобы причинить кому-то боль. Это домашнее задание, и я не собираюсь жульничать, просто какое-то руководство.

Я много читал о Reg Ex и понимаю их.

Я не ищу руководство для начинающих.

Ответы [ 3 ]

3 голосов
/ 20 января 2011

Поиск шаблона, который имеет следующие элементы по порядку:

  1. начало строки или любого пробела.
  2. Ноль или более непробельных символов, кроме C.
  3. A "C"
  4. Ноль или более непробельных символов, кроме C.
  5. Конец строки или любого пробела.
3 голосов
/ 20 января 2011

Вы хотите сначала поставить границу слова в начале и в конце. Затем сопоставьте любой символ, который не является C или границей слова 0 или более раз, затем C, а затем снова любой символ, который не является C или границей слова 0 или более раз. Таким образом, он будет совпадать с самим C или C с любыми (не обоими) символами, отличными от C.

Границу без C или слова вы могли бы сделать двумя способами ... сказать "любой символ, который не является границей C или слова" или вы могли бы сказать "Я хочу A, B или что-нибудь из D-Z". До вас.

0 голосов
/ 20 января 2011

вы можете создать функцию подсчета. затем передайте каждую строку к нему. просто пример

String string = "KIGABCCA"
public static boolean countChar(String string, char ch){
     int count =0;
     for(int i = 0; i<string.length();i++){
        if(string.charAt(i) == ch ){
          count++;
        }
     }
     if ( count == 1){ 
       return true;
     }else {
       return false;
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...