2017-04-04 107 views
1

我想找到一個文件編號的模式(這是我成功的做到了),將其轉換成我想要的數字格式通過使用類的另一種方法(這也是我成功地做了)...替換字符串文本文件的某些部分

我的問題是,我想,以取代以前的數字格式的新數字格式(我不知道怎麼做),並將其寫入到一個新文件。

String INPUT = "D:\\input.txt"; 
    String OUTPUT = "D:\\output.txt"; 
    String all = ""; 
    Pattern regexp = Pattern.compile("\"(\\d{14}.{2}\\d{4})\""); 
    try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(INPUT), "UTF-8"))) { 
     String CurrentLine; 
     while ((CurrentLine = in.readLine()) != null) { 
      Matcher matcher = regexp.matcher(CurrentLine); 
       if (matcher.find()) { 
        String number1 = CurrentLine.substring(10,20); 
        String number2 = CurrentLine.substring(30,40); 
        number1 = convertor(number1); 
        number2 = convertor(number2); 
       } 
      all = all + sCurrentLine + "\r\n"; \\create output to use for BufferedWriter 
     } 

順便說一句,上面的代碼是(因爲它很明顯)只是我的整個代碼的一部分。

+0

目前還不清楚轉換器的作用是什麼... – freedev

+0

假設數字格式是這樣的:23 + 3轉換器方法將數字相加並返回26 + 0。輸入是20個字符,轉換器輸出也是20個字符。 – aminspy12

回答

0

要保存你的輸出就在環的末端執行此。

Files.write(Paths.get(OUTPUT), all.getBytes(), StandardOpenOption.CREATE); 

matcher對象甚至返回其中組(\d{14}.{2}\d{4})已經相匹配的位置。我建議仔細檢查這部分代碼以幫助自己。

使用matcher.start(1)有以前的匹配操作期間,由該組捕獲的子序列的初始索引。

+0

我確切地知道在那些行(有數字)中找到字符串的位置。這matcher.start(1)幫助我替換轉換後的模式? – aminspy12

+0

這只是一個建議......如果你已經知道如何做到這麼好 – freedev

+0

謝謝,但我怎樣才能用原始數字替換轉換後的數字? – aminspy12

相關問題