Как заменить всю строку, кроме определенной части в строке - PullRequest
0 голосов
/ 20 марта 2019

У меня есть строка abc____2019____5_10_40_56_20190319213500.pdf, и я хочу заменить строку, которая находится до date stamp.

Может ли кто-нибудь дать предложение?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 20 марта 2019

Нет необходимости в регулярном выражении :) Просто разбейте всю строку по последнему появлению подчеркивания:

String s = "abc____2019____5_10_40_56_20190319213500.pdf";
s = s.substring(0, s.lastIndexOf("_"));

Или, если вы хотите заменить эту часть раньше, вы можете использовать:

String s = "abc____2019____5_10_40_56_20190319213500.pdf";
s = "replacment" + s.substring(s.lastIndexOf("_") + 1);
0 голосов
/ 20 марта 2019

Вот три простых способа сделать это.

Способ без регулярных выражений. Просто разделите, используя _, и получите последний элемент из массива, используя этот код,

String s = "abc____2019____5_10_40_56_20190319213500.pdf";
String[] data = s.split("_");
System.out.println(data[data.length-1]);

печать

20190319213500.pdf

Способ Regex еще круче, с одним кодом лайнера. Заменить все от начала до последнего появления подчеркивания,

String s = "abc____2019____5_10_40_56_20190319213500.pdf";
System.out.println(s.replaceAll("^.*_", ""));

печать

20190319213500.pdf

Еще один способ использования find метода в Matcher состоит в том, чтобы найти комбинацию из последних цифр, за которой следует любой нецифровый шаблон до конца строки, используя этот код,

String s = "abc____2019____5_10_40_56_20190319213500.pdf";
Pattern p = Pattern.compile("\\d+\\D*$");
Matcher m = p.matcher(s);
if (m.find()) {
    System.out.println(m.group());
} else {
    System.out.println("Didn't find");
}

печать

20190319213500.pdf
0 голосов
/ 20 марта 2019

Эй, используйте длину метки времени и длину строки, чтобы справиться с этим. Пожалуйста, мой код ниже поможет вам

 String sample = "abc____2019____5_10_40_56_20190319213500";
 int lengthOfTimestamp = 25;
 String value = sample.substring(sample.length() -lengthOfTimestamp ,sample.length());
 System.out.println("value :"+value);

вывод:

value : 5_10_40_56_20190319213500
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...