Задать вопрос
@Fere38

Что не правильно в коде?

Есть следующий код: Предназначение его искать в указанном файле строчку Apples = цифра и при нахождении устанавливать нужное значение.

package com.company;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
 * Created by zn_am on 14.03.16.
 */
    public class searchf {
        public static void main(String[] args) throws IOException {
            String fileName = "D:\\com.company\\shared\\JsonData.xml";
            String search = "(Apples = (\\d+))";
            String replace = "Apples = 5555";
            Charset charset = StandardCharsets.US_ASCII;
            Path path = Paths.get(fileName);
            Files.write(path,
                    new String(Files.readAllBytes(path), charset).replace(search, replace)
                            .getBytes(charset));
        }
    }

Но значение не меняется. Помогите разобраться пожалуйста!
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Оценить 1 комментарий
Решения вопроса 2
XNoNAME
@XNoNAME
Эникейщик
может так?
.replace(search, replace)
заменить на
.replaceAll(search, replace)
Ответ написан
Нужно заменить .replace(search, replace) на .replaceAll(search, replace)
Полный код:

public static void main(String[] args) throws IOException {
        String fileName = "D:\\com.company\\shared\\JsonData.xml";
        String search = "(Apples = (\\d+))";
        String replace = "Apples = 5555";
        Charset charset = StandardCharsets.US_ASCII;
        Path path = Paths.get(fileName);
        Files.write(path,
                new String(Files.readAllBytes(path), charset).replaceAll(search, replace)
                        .getBytes(charset));
        
    }


Тестовые данные до выполнения:

<?xml version="1.0" encoding="US-ASCII"?>
<xs:element name="apple" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <apple>Apples = 13</apple>
    <apple>Fake</apple>
    <apple>Apples = 11</apple>
</xs:element>


Тестовые данные после выполнения:

<?xml version="1.0" encoding="US-ASCII"?>
<xs:element name="apple" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <apple>Apples = 5555</apple>
    <apple>Fake</apple>
    <apple>Apples = 5555</apple>
</xs:element>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Konstantin18ko
@Konstantin18ko
Стоматолог
Это разве не так пишется? "D://com.company/shared/JsonData.xml"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект