字符串替换不在控制台中打印值

时间:2016-03-29 08:09:28

标签: java

我有一个HTML文件,如下所示

""

我正在尝试将<html> <head> <title>Title</title> <link rel="stylesheet" type="text/css" href="er:#css" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> </head> <body class="text" id="text"> <div class="chapter"> <a id="page1" /> </div> </body> </html> 替换为a id并使用以下代码。

id num

但是当我在控制台中打印它时,它不会替换数据。我得到以下输出。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
public class Test {
    public static void main(String[] args) throws IOException {
        String input = "file:///C:/Users/users/file.html";

        URL url= new URL(input);
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            if (inputLine.contains("a id")) {
                inputLine.replace("a id", "?pb label =");
            }
            System.out.println(inputLine);
        }
        in.close();
        }
    }

    标题                                             

这个词没有被取代。当我执行<html> 时,在这种情况下输入debug,数据不会在控制台中替换。

请让我知道我哪里出错了,我该如何解决这个问题。

谢谢

1 个答案:

答案 0 :(得分:6)

String是不可变的。您必须将replace的结果分配回inputLine,因为replace会返回新的String

inputLine = inputLine.replace("a id", "?pb label =");