2012-05-28 3 views
0

У меня есть строка, и я ищу, чтобы получить конкретный раздел для ее сохранения.Поиск определенного раздела строки

Активы/Темы/Обновить/filename_hj10134532.html.xls

Я хочу получить в разделе "hj10134532". Как я могу извлечь эту часть строки?

Любая помощь очень ценится.

+0

Вы даете нам пример, но не правило, что составляет шаблон. Используемые символы? HJ [0-9] *? Что-то между _ и.? Только до .html? .html.xls? –

ответ

2
String s="Assets/Topics/Update/filename_hj10134532.html.xls"; 
System.out.println(s.split("\\.")[0].split("_")[1]); 
//out hj10134532 
0

Если следующее фиксированного формата

sometext_requiredText.html.xls 

, то вы можете сделать это следующим образом

  1. Разделить строку по _
  2. Возьмите вторую часть (т.е. str.split("_")[1] проверки длины результирующей массив)
  3. Найти первое появление . используя indexOf()
  4. Использование substring(int, int)
-1

Проверил:

String pat = "hj10134532"; 
if ("Assets/Topics/Update/filename_hj10134532.html.xls".contains (pat)) 
    return pat; 

, если он содержит ("hj10134532"), вернуть его. Нет необходимости извлекать его.

1

Вы также можете сделать:

String input = "Assets/Topics/Update/filename_hj10134532.html.xls"; 
String part = input.substring(input.lastIndexOf("_") + 1, input.indexOf(".")); 
+0

@Pshemo: Ой! пропустил ваш комментарий. Починил это. Благодарю. –

0

На самом деле, есть гораздо более простой способ, чем то, что вы три выложили.

String s="Assets/Topics/Update/filename_hj10134532.html.xls"; 
    return s.substring(s.indexOf("_"),s.indexOf(".")); 

Гораздо более удобочитаемый и не требуется разделение нитей.

Смежные вопросы