Я должен отфильтровать определенные контейнеры из vCard (файл * .vcf). Я фильтрую строки, которые содержат подстроку Photo;
, если совпадают, строки до определенной строки ==
сохраняются в моей строке imageEncoding
. Так или иначе, если я хочу заменить пробелы imageEncoding
на ""
, ничего не будет заменено
Пример "контейнера":
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQE
CAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/==
Фрагмент кода:
else if(line.contains("PHOTO;")){
String imageEncoding = line;
while(true){
line = reader.readLine();
if (line.contains("==")){
imageEncoding = imageEncoding+line;
break;
}
imageEncoding = imageEncoding+line;
}
//imageEncoding.replaceAll(" ","");
imageEncoding.replaceAll("\\s","");
System.out.println(imageEncoding);
}
Вывод с "":
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQE
CAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/==
Вывод с \ s :
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQE
CAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/==
Что должно быть:
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQE
CAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/==
Строка на много строк длиннее, это всего лишь фрагмент. Я попытался заменить \\s
, но это также не сработало.