想做一个模版自动生成文件的程序,部分代码如下String pageTempPath = "D:/template/pages_temp.txt";
try
{
// 读取模块文件
FileInputStream pageTemp = new FileInputStream(pageTempPath);
int lenghtPage = pageTemp.available();
byte bytes[] = new byte[lenghtPage];
pageTemp.read(bytes);
pageTemp.close();
String pageStr = new String(bytes); }
int prePage=pageid-1;
int nextPage=pageid+1;
if(prePage <1)
prePage =1;
if(nextPage>pageCount)
nextPage = pageCount;
System.out.println(pageStr);
pageStr.replaceAll("#prepage#", pageStr+"");
System.out.println(pageStr);
看最后三句程序,打印出的pageStr如下:
<div class="pages"><a href="#dominurl#/#category1#/#category2#/index#prepage#"><img src="images/pre.gif" alt="pre" />
<div class="pages"><a href="#dominurl#/#category1#/#category2#/index#prepage#"><img src="images/pre.gif" alt="pre" />
pageStr的值完全一样,也就是replaceAll并没有起作用,而pageStr是含有“#prepage#”这个字段的,
郁闷无比,然后写了个测试类直接令String s = 刚才那个字符串,再调用s.replaceAll("#prepage#", pageStr+"");结果发现s的值却改变了,百思不得其解, 为什么上面第一种情况没有执行成功, 谢谢
try
{
// 读取模块文件
FileInputStream pageTemp = new FileInputStream(pageTempPath);
int lenghtPage = pageTemp.available();
byte bytes[] = new byte[lenghtPage];
pageTemp.read(bytes);
pageTemp.close();
String pageStr = new String(bytes); }
int prePage=pageid-1;
int nextPage=pageid+1;
if(prePage <1)
prePage =1;
if(nextPage>pageCount)
nextPage = pageCount;
System.out.println(pageStr);
pageStr.replaceAll("#prepage#", pageStr+"");
System.out.println(pageStr);
看最后三句程序,打印出的pageStr如下:
<div class="pages"><a href="#dominurl#/#category1#/#category2#/index#prepage#"><img src="images/pre.gif" alt="pre" />
<div class="pages"><a href="#dominurl#/#category1#/#category2#/index#prepage#"><img src="images/pre.gif" alt="pre" />
pageStr的值完全一样,也就是replaceAll并没有起作用,而pageStr是含有“#prepage#”这个字段的,
郁闷无比,然后写了个测试类直接令String s = 刚才那个字符串,再调用s.replaceAll("#prepage#", pageStr+"");结果发现s的值却改变了,百思不得其解, 为什么上面第一种情况没有执行成功, 谢谢
public void genKind2Page(int pageid)
{
String s ="<div class=\"pages\"><a href=\"#dominurl#/#category1#/#category2#/index#prepage#\">"
s.replaceAll("#prepage#", 1+"");
}
然后在main里调用该函数,发现s的值没有变化,
而把genKind2Page里面的代码直接放在main()里面,则发现s的值已经修改,ft,实在是郁闷。
看看JDK文档就清楚