Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как организовать словарь или сопастовление


Автор: 344092 25.11.2006, 13:51
Как вырезать части с помощью regexp разобрался, cпасибо LSD. А вот как сопоставить значение вырезанных кусков, по словарю?? или xml?? или есть более удобный способ ?

Например имеем вырезку из строки "INFO = 50 HEROPAGRT AUUTO RC" получаем только цифру "50", а как сделать чтобы если там "50" то "System bus", если "130" то "Error clk" ??? 

вот код:
Код

String input = "!!! /06-07-16/21-18-41 RO JT8U+60 BC:B 304\n"
                + "INFO = 50 HEROPAGRT AUUTO RC\n"
                + "INFO = 130 HEROPAGRT AUUTO RC\n"
                + "!! /06-07-16/21-18-41 RO JT8U+60 BC:B 304\n"
                + "INFO = 00000001 + 00000001 + 00002000\n"
                + "INFO = 23 HEROPAGRT AUUTO RC\n"
                + "INFO = 83 HEROPAGRT AUUTO RC\n"
                + "! /06-07-16/21-18-41 RO JT8U+60 BC:B 304\n"
                + "INFO = 00000001 + 00000001 + 00002000\n";
            Pattern str1Pattern = Pattern.compile("^!{1,3}\\s*(/\\d{2}-\\d{2}-\\d{2}/\\d{2}-\\d{2}-\\d{2}).*$");
            Pattern str2Pattern = Pattern.compile("^\\s*INFO\\s*=\\s*(\\d+).*$");

            BufferedReader source = new BufferedReader(new StringReader(input));
            try
            {
              String str;
              while((str = source.readLine()) != null)
              {
                System.out.println("Processing string: " + str);

                Matcher str1Matcher = str1Pattern.matcher(str);
                if(str1Matcher.matches())
                {
                  System.out.println(str1Matcher.group(1));
                }
                else
                {
                  Matcher str2Matcher = str2Pattern.matcher(str);
                  if(str2Matcher.matches())
                    System.out.println(str2Matcher.group(1));
                }
              }
            }
            catch(Exception ex)
            {
              ex.printStackTrace();
            }

  

Автор: 3x3 25.11.2006, 17:22
http://java.sun.com/j2se/1.5.0/docs/guide/collections/reference.html

Автор: LSD 26.11.2006, 00:41
Используй HashMap, почитай http://vingrad.ru/JAVA-FAQ-002980 и http://vingrad.ru/JAVA-FAQ-000104.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)