簡體   English   中英

如何通過給出索引值來替換文本文件中的特定字符?

[英]How to replace a specific character in a text file by giving the index value?

遇到了這段代碼,該代碼替換了給定值的所有字符。

File temp = File.createTempFile("newfile", ".txt");
    FileWriter fw = new FileWriter(temp);
    Reader reader = new FileReader(file);
    BufferedReader br = new BufferedReader(reader);

    while (br.ready()) {
        fw.write(br.readLine().replaceAll("n", "j") + "\n");
    }

    fw.close();
    br.close();
    reader.close();

    temp.renameTo(file);
}

沒有用“ j”代替所有的“ n”,沒有辦法指定我只想更改的索引嗎?

您可以使用以下模式使用replaceFirst (接受正則表達式):

(?<=.{N-1}).

其中“ N”是您要替換的索引。

當然,有許多替代方法,請查看String API以助您一臂之力。

while語句中的行如下:

fw.write(br.readLine().replaceAll("n", "j") + "\n");

可以擴展為:

String str = br.readLine();                   //get text
String replace = str.replaceAll("n", "j");    //replace content
replace = replace + "\n";                     //add new line
fw.write(replace);                            //write to file

對於替換某個索引的實例,您需要執行類似的操作:

StringBuilder str = new StringBuilder(br.readLine()); //Read line into StringBuilder
if(str.length() > 3)                //Check if string is long enough
    str.setChar(4, 'x');            //Replace character in line at index 4 to 'x'
fw.write(str);                      //write to file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM