Buscar palavra em txt e editar o que tem a seguir dela

Boa tarde, estou com dificuldade para desenvolver um método que busque e edite uma palavra, por exemplo;

config 5
follow 0
followCheckL0 2
followT 2
followEn 1
itemsMaxWeht 89

eu quero buscar a palavra follow e modificar o 0 e tornar 1.

Obs: o txt tem varias linhas que muitas vezes tem palavras parecidas como follow e followcheck. e nem sempre estão em determinada ordem.

Agradeço

String str = "qualquercoisaantes follow 0 qualquer coisa d e p o i s follow 0";

// imprime: qualquercoisaantes follow 1 qualquer coisa d e p o i s follow 1
System.out.println(str.replace("follow 0", "follow 1"));
    
// imprime: qualquercoisaantes follow 1 qualquer coisa d e p o i s follow 0
System.out.println(str.replaceFirst("follow 0", "follow 1"));

ps: tanto .replaceFirst() quanto .replaceAll() requerem uma regex (Expressões regulares) por parâmetro. Mas, o replaceFirst(), por exemplo, funciona desta forma também. ^^

Sucesso!

Documentação da classe: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html

mas como faço a busca mp arquivo txt, antes desta edição.

String str = new String(Files.readAllBytes(new File("<caminho-do-seu-arquivo>").toPath()));
System.out.println(str);
  try {
        str = new String(Files.readAllBytes(new File("C:\\Users\\pcwizard\\Desktop\\\\config.txt").toPath()));
        str.replaceAll("follow 0", "follow 2")
        System.out.println(str);
    } catch (IOException ex) {
        Logger.getLogger(novotestes.class.getName()).log(Level.SEVERE, null, ex);
    }

}

não funcionou.

  1. Está faltando ; (ponto e vírgula) na linha do .replaceAll().
  2. Use o .replace(). Ele já vai alterar todos os “follow 0” que encontrar no texto.

Qual o erro? Reveja se o caminho do arquivo está correto.

Uma das formas de fazer isto (e a mais simples que conheço) é esta.

O código está rodando perfeitamente!

ps: o .replaceAll() requer uma regex, o replace() requer um CharSequence.
ps2: o replaceFirst() também requer uma regex, mas ele também funciona passando uma String “simples”.

ele não busca a palavra follow 0 e altera o 0 pra 2
Ps eu corrigi as 4 barras.

String str;
try {
str = new String(Files.readAllBytes(new File(“C:\Users\pcwizard\Desktop\\control\config.txt”).toPath()));
str.replace(“follow 0”, “follow 2”);
System.out.println(str);
} catch (IOException ex) {
Logger.getLogger(novotestes.class.getName()).log(Level.SEVERE, null, ex);
}

ele não altera no arquivo txt

acabei de ver, ele altera o arquivo no netbeans mas não no arquivo no bloco de notas.

Resolução:

public class StringTest {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get("<caminho-do-seu-arquivo>");
        String str = new String(Files.readAllBytes(path));
        try (BufferedWriter writer = Files.newBufferedWriter(path, Charset.forName("US-ASCII"))) {
            writer.write(str.replace("follow 0", "follow 1"));
        } catch (IOException x) {
            System.err.format("IOException: %s%n", x);
        }
    }
}

Funcionou, muito obrigado.
no Caso ele esta alterando outras opções de follow por ex. target_follow
eu posso usar Regex exemplo “[follow | 0-9]]”, “follow 2”

Se você quiser um replace mais “dinâmico”, manda bala com regex. o/

ps: sinalize a resposta com a solução para auxiliar outras pessoas que, eventualmente, possam fazer uso deste post.

Valeu!! novamente muito obrigado.