public class ReplaceInFile {
public static void main(String[] args) throws IOException {
String fileName = "file.txt";
String search = "31415";
String replace = "число ПИ";
Charset charset = StandardCharsets.UTF_8;
Path path = Paths.get(fileName);
Files.write(path,
new String(Files.readAllBytes(path), charset).replace(search, replace)
.getBytes(charset));
}
}
В этом классе я ищу фграгмент текста в файле по полному совпадению. Как сделать так что-бы после полного совпадения программа считывала строку до символа ;
?
Пример поиска
Файл:
IP=123123; CONNECT=456456; DADADA dadada;
DATA=321321;
Если я ищу CONNECT= то его значение нужно считать до знака ;
.
Решение, используя регулярные выражения. Ищет "значение" между "CONNECT=" и ";" в строке
public static void main(String[] args) throws IOException {
String string = "IP=123123; CONNECT=456456; DADADA dadada;";
String pattern1 = "CONNECT=";
String pattern2 = ";";
Pattern p = Pattern.compile(Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2));
Matcher m = p.matcher(string);
while (m.find()) {
System.out.println(m.group(1));
}
}
Можно сделать так:
String fileName = "file.txt";
String text = "CONNECT";
String delimiter = ";";
Optional<String> result =
Files
.lines(Paths.get(fileName))
.filter(e -> e.contains(text))
.map(e -> {
int start = e.indexOf(text);
int end = e.indexOf(delimiter, start + text.length());
return e.substring(start, end);
})
.findFirst();
result.ifPresent(System.out::println);
Данное решение позволяет не считывать весь файл целиком.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени сутокНеобходимо сделать так, чтоб при выпадании дня на праздничный день, дата сдвинулась на следующий день
Как реализовать это ознакомительное диалоговое окошко с показом возможностей приложения
Доброго времени суток, кто нибудь знает как импортировать эту ( https://githubcom/steveno/balistica ) библиотеку в Android Studio ? Как я понимаю она написана на языке...
Не могу узнать значение PA если при вводе я нажму Enter ничего не введя