从文件java中读取后替换字符串中的字符

时间:2015-11-09 04:31:25

标签: java string file-io

所以我正在编写一个程序,它将读取文件的输入,将所有的html标签替换为>,大于和<,替换为小于,而且我的逻辑是正确的但是出于某种原因,当我尝试在' from'中的字符串上使用.replace方法。文件它给我一个警告说,.replace方法被忽略。我试着阅读思想告诉我的内容,但我不明白它在说什么。

public void rewrite(String from, String to) {
    File f = new File(from);
    File t = new File(to);
    try {
        Scanner s = new Scanner(f);
        FileWriter fw = new FileWriter(to);
        while (true) {
            if (s.hasNext()) {
                String a = s.next();
                if (a.contains("<") || a.contains(">") || a.contains("&")) {
                    a.replace("<", "&lt;,");
                    a.replace(">","&gt;,");
                    a.replace("&","amp;,");

                }
                fw.append(a);
            } else {
                break;
            }
        }
        fw.close();
        s.close();
    } catch (Exception e) {
        System.out.println(e);
    }
}

编辑:It is a warning not a compile time error nor a runtime error

1 个答案:

答案 0 :(得分:1)

警告是因为字符串不变性

你应该使用

     listView.setOnScrollListener(new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        if ((++firstVisibleItem) + visibleItemCount > totalItemCount)     {
        for(int i = 0; i < 5  && tangaList2.size() > 0; i++){
         tangaList.add(tangaList2.get(0));
         tangaList2.remove(0);
        }
        }
        }
    });

否则,替换的String将丢失,原始字符串不会被修改