Заменить определенный символ и setText из getName определенного символа - PullRequest
0 голосов
/ 10 октября 2019

Пожалуйста, помогите мне решить эту проблему,

Имя файла: Beach Video @ instagram.mp4

Мои вопросы 1 Я хочу получить только "Beach Video"и удаляйте "@" до конца слова

Мои вопросы 2 я хочу получить только "@" до конца слова и добавить строку "source" перед "@"

  • вопросы с результатами 1: Видео на пляже
  • вопросы с результатами 2: Source @ instagram

примечание: это не просто 1 файл, существует много файловс разными именами. но формат тот же.

я пробую это, но удаляю только последние 10 символов

Edit_Text (file.getName (). replace (". mp4", ""). replaceFirst (". {10} $", ""));

        videoUrl = picturePath  ;
        File file = new File(videoUrl);
        Log.v("SIZE",file.getName()+"");
        title.setText(file.getName());
        Edit_Text(file.getName().replace(".mp4","").replaceFirst(".{10}$",""));

1 Ответ

0 голосов
/ 10 октября 2019

Вы можете использовать простое регулярное выражение, чтобы проанализировать ваше имя файла и захватить текст, который вы хотите, в две группы и использовать их так, как вы хотите. Этот код Java должен помочь. И как это работает, регулярное выражение сначала захватывает все до @ (используя (.*)), исключая любые пробелы до этого, и вторая часть захватывается, начиная с @, за которым следует один или несколько символов, отличных от точки, используя (@[^.]+)

String s = "Beach Video @instagram.mp4";
Pattern p = Pattern.compile("(.*)\\s*(@[^.]+).*");
Matcher m = p.matcher(s);
if (m.matches()) {
    System.out.println("First part: " + m.group(1));
    System.out.println("Second part: Source " + m.group(2));
} else {
    System.out.println("Unexpected file format");
}

Печатает оба ваших результата так, как вы хотите,

First part: Beach Video 
Second part: Source @instagram

Можете ли вы проверить, хорошо ли это работает для вас?

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