Перейти к содержимому

Фотография

selenium 2 + java. Вырезать первое по порядку число из строки


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Lace

Lace

    Новый участник

  • Members
  • Pip
  • 48 сообщений

Отправлено 26 февраля 2013 - 11:36

Добрый день!

Есть строка, номер аккаунта пользователя, которая показывается в следующем виде: 000000000000\имя аккаунта\1000\имя пользователя

в дальнейшем для проверок используется только первые числа, а именно номер аккаунта. Причем данный номер может быть любой длинны - от 7 до 20 чисел.
Погуглив я нашла следующее решение:
String fromAccount = (Account).replace("(^.+\\D)(\\d+)(\\D.+$)/i","$2");
Но оно не работает, т.е. строка остается без изменений.

Есть еще такое решение:
String s = "2011-10-20 525 14:28:55 10";
Pattern p = Pattern.compile("(^|\\s)([0-9]+)($|\\s)");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(2));
}

И еще, результат вырезания мне нужно получить в виде строки, чтобы иметь возможность провести дальнейшие assert'ы...

но я, честно говоря, не могу понять подходит ли оно для моей ситуации.

Буду благодарна за совет, так как в регулярных выражениях я совсем не сильна, к сожалению...
  • 0

#2 tab15

tab15

    Активный участник

  • Members
  • PipPip
  • 128 сообщений

Отправлено 26 февраля 2013 - 12:31

Что нибудь такое быть может?
 String s = "000000000000\\имя аккаунта\\1000\\имя пользователя";
 Pattern p = Pattern.compile("^\\d+\\\\");
 Matcher m = p.matcher(s);
 if(m.find())
   System.out.println(s.substring(m.start(),m.end()-1));

  • 0

#3 Julia_Sh

Julia_Sh

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Юлия
  • Город:Новосибирск

Отправлено 26 февраля 2013 - 12:39

Обрезайте строку после встречи первого символа "\". Что-то вроде этого.
  • 0

#4 Lace

Lace

    Новый участник

  • Members
  • Pip
  • 48 сообщений

Отправлено 26 февраля 2013 - 12:58

Что нибудь такое быть может?

 String s = "000000000000\\имя аккаунта\\1000\\имя пользователя";
 Pattern p = Pattern.compile("^\\d+\\\\");
 Matcher m = p.matcher(s);
 if(m.find())
   System.out.println(s.substring(m.start(),m.end()-1));


А как полученный результат можно вывести в строку?
Потому что в консоли никакого результата от этого метода мне не вывелось...
  • 0

#5 Lace

Lace

    Новый участник

  • Members
  • Pip
  • 48 сообщений

Отправлено 26 февраля 2013 - 13:05

Обрезайте строку после встречи первого символа "\". Что-то вроде этого.

символа "\" - я поставила для наглядности. В реале там идут пробелы. От одного до трех.
И глупый вопрос, как обрезать строку до первого пробела?
  • 0

#6 tab15

tab15

    Активный участник

  • Members
  • PipPip
  • 128 сообщений

Отправлено 26 февраля 2013 - 13:05

String s1 = s.substring(m.start(),m.end()-1);
  • 0

#7 Lace

Lace

    Новый участник

  • Members
  • Pip
  • 48 сообщений

Отправлено 26 февраля 2013 - 14:03

В моем - описанном выше - данном конкретном случае проблему решила следующим образом:

public String AccountData() {
		String Account = Driver().findElement(By.xpath("нужный xpath")).getText();
		String fromAccount = Account.substring(0,Account.indexOf(' ')); 
		return fromAccount;

способ нашла вот здесь: http://stackoverflow...space-occurence
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных