проблема удаления пробелов из строки - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю с Appium Automation на нативном android приложении

У меня есть MobileElement, из которого я хочу получить текст

MobileElement likesElement = (MobileElement) driver.findElement(By.id("com.instagram.android:id/row_feed_textview_likes"));

И затем у меня есть строка

String likesVal = likesElement.getText();

Когда я запускаю System.out.println(likesVal);, он печатает:

Liked by you and 107 others

Мне нужно удалить все, кроме 107, чтобы я мог запустить parseInt на likesVal

Я пытался

likesVal= likesVal.replaceAll("[*a-zA-Z_.-]", "");
likesVal= likesVal.replaceAll(" ", "");
StringUtils.deleteWhitespace(likesVal);
int likes = Integer.parseInt(likesVal);
System.out.println(likes);

Но я получаю java.lang.NumberFormatException For input string: "107 " на int likes = Integer.parseInt(likesVal);

После удаления likesVal всего, кроме чисел, почему не было места, которое предшествует "другим" в likesVal удалено?

После удаления likesVal всего, кроме цифр, мне нужно напечатать "107" вместо "107"

1 Ответ

2 голосов
/ 28 апреля 2020

Я предлагаю использовать шаблон для замены всех не цифр (\\D). Например,

String tmp = "Liked by you and 107 others";
// String likesVal = likesElement.getText().replaceAll("\\D+", "");
String likesVal = tmp.replaceAll("\\D+", "");
int likes = Integer.parseInt(likesVal);
System.out.println(likes);

Выходы

107

по запросу.

...