在读出表单,写入数据库后程序会自动记录换行的字符并放入到数据库中,但读出来显示时回车换行却被忽略了。这里定义了addBr方法对读出的数据字符串采用了用<br>置换/n的方式。奇怪的是置换完成以后字符串虽然能够换行了,却每行多了一些“:”分隔符号,所以又定义了RemoveComment()方法将“:”处理掉。在java中处理带分隔符数据的方式是,提供了一个系统类java.util.StringTokenizer来进行处理。例如StringTokenizer(String content,String delim)将在字符串content的基础上创建一个StringTokenizer对象,并用delim来作为新的分隔符,如果省略delim,则以系统缺省的分隔符来作为原来各分隔符的替代。实际上还有第三个参数,true/false,如果为true则返回值还包含分隔符本身。可以加以省略。关于Token的另一些方法,如public String nextToken(), public bolean hasMoreTokens(), public int countTokens()等,请参考有关java书籍手册。这次将代码写入了bean中(在Utility.java中),代码如下:**********************************************************************package mydb;import java.io.*; import java.util.*;public class Utility{//去掉奇怪的: public String RemoveComment(String Content){ String makeContent=new String(); StringTokenizer strToken=new StringTokenizer(Content," "); String tempToken=null;while(strToken.hasMoreTokens()){ tempToken=strToken.nextToken(); if(tempToken.indexOf(":")!=0) makeContent=makeContent+tempToken+" "; }return makeContent; }//将/n转换成为回车<br> public String addBr(String Content){ String makeContent=new String(); StringTokenizer strToken=new StringTokenizer(Content," "); while(strToken.hasMoreTokens()){ makeContent=makeContent+"<br>"+strToken.nextToken(); } return makeContent; } }
如果只要页面显示,不想影响界面,可以有一个得意的办法,就是让指定多长换行,就行了 假定85个字符换行,字段名为cont while (rs.next()){ String s=rs.getString("cont"); int row=(s.length())/85; for (int j=0;j<row;j++) {String files=s.substring(j*85,(j+1)*85); out.println("<TR><TD>"+files+"</TD></tr>");}
import java.util.*;public class Utility{//去掉奇怪的:
public String RemoveComment(String Content){
String makeContent=new String();
StringTokenizer strToken=new StringTokenizer(Content,"
");
String tempToken=null;while(strToken.hasMoreTokens()){
tempToken=strToken.nextToken();
if(tempToken.indexOf(":")!=0)
makeContent=makeContent+tempToken+"
";
}return makeContent;
}//将/n转换成为回车<br>
public String addBr(String Content){
String makeContent=new String();
StringTokenizer strToken=new StringTokenizer(Content,"
");
while(strToken.hasMoreTokens()){
makeContent=makeContent+"<br>"+strToken.nextToken();
}
return makeContent;
}
}
假定85个字符换行,字段名为cont
while (rs.next()){
String s=rs.getString("cont");
int row=(s.length())/85;
for (int j=0;j<row;j++)
{String files=s.substring(j*85,(j+1)*85);
out.println("<TR><TD>"+files+"</TD></tr>");}
}