Java procurar arquivo de texto para cordas e substituir ou remover um personagem dentro da cadeia

ProgrammerLarry:

Eu estou trabalhando com um arquivo de texto grande que tem milhares de linhas de texto que contenham alguma informação. Às vezes, o software irá adicionar aleatoriamente um personagem no lugar que irá falhar o nosso upload. Eu estou tentando criar um programa que encontra uma cadeia que é codificado e, em seguida, pesquisas dentro da linha e substitui ou remove o caráter inválidos. Aqui você encontra o conteúdo do arquivo de texto.

    MTR17000386001000000000000000RA              124359      
    00010000004000000040000000 000NN  NNE 000                       N    
    RDG17000386 
    KWHL000000000R00000100000059534000405162019075929N000400000010N8486     
    000010500R 00000010010000059226           
    RFF1700038652126007      ERT      
    0000000952.0062500070014051620190759290005953476Type 7  0000N    6
    MTR17000386001000000000000000RA              114818      
    00010000005000000050000000 000NN  NNE 000                       N    
    RDG17000386 
    DMDL000000000R000001000.0072666035305162019112344N000100000010N8486     
    005180500R 00000010010000072666           
    RFF1700038611861733      ERT      
    0000000952.0062500070000051620191123440007266680Type 7  0000N    6

Na linha de RDG17000386 DMD você pode ver que há um período. O período não é suposto estar lá e precisa ser substituída ou removida do arquivo.

No meu código atual I "m pesquisar cada linha que começa com 'RDG' e ele funciona Encontre, mas eu quero limitar a pesquisa apenas com as linhas que incluem 'DMD' dentro da linha e eu tentei mudar o RDG para DMD , que não funcionou porque a linha não começa com DMD. Eu não sou inteiramente certo como remover ou substituir o período a partir do arquivo. Aqui está o que minha aparência código como até agora.

 import java.io.*;

 public class ReadLineAndReplace {

public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new FileReader("FilePath"));
    StringBuilder sb = new StringBuilder();
    String line = "";

    while ((line = br.readLine()) != null) {

        if (line.startsWith("RDG")) {
        //assuming the replace would be inserted here   
            System.out.println(line);       
        }
    }
}
}
Joakim Danielson:

Usar. matches()com uma expressão regular

line.matches("^RDG.*DMD.*")

para substituir o ponto com um zero

if (line.matches("^RDG.*DMD.*")) {
    line = line.replace('.', '0')
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=204466&siteId=1
Recomendado
Clasificación