日期:2014-05-17  浏览次数:20735 次

StringBuffer.append里的斜杠是做什么用的?
比如像下面这样的代码,是当jsp页面执行时,动态的输出一段javascript的代码,groupName和groupID有可能改变。treeinfo里面为什么要加斜杠(\)呢?

Java code

<%
StringBuffer treeinfo    = new StringBuffer();
String groupName        = "";
String groupID            = "";
treeinfo.append("<script language=\"JavaScript\">var tree = new WebFXTree(\"Root\");");
treeinfo.append("tree.add(new WebFXCheckBoxTreeItem(\""+groupName+"\",\"grouploadtree1.jsp?str="+groupID+";13\",\"\",\"\",\"\",\"\",\"\",\"\"));");
out.print(treeinfo);
%>




------解决方案--------------------
转义字符,表示其只不过是个字符,而非字符串定界符。

否则这么多双引号,你让人家怎么能知道哪些是字符串分割符,哪些是字符串的内容?
------解决方案--------------------
转义 : 
如果要给字符串赋值为双引号或者反斜杠的话需要它,比如:

String str = "\"" ;//str 的值为: " 
String str = "\\" ;//str 的值为: \

楼主可以写个简单的程序运行看看效果:

public class Test{

public static void main(String []args){
String str = "" ; 
str = "\"" ;
System.out.println("双引号: " + str + " ");

str = "\\" ;
System.out.println("反斜杠: " + str + " ");

 
}
}
------解决方案--------------------
\",\是给"起到转义的作用,在字符串中可以出力"符号
------解决方案--------------------
treeinfo.append("webFXTreeConfig.setImagePath('js/images/');");

------解决方案--------------------
转义字符:
Java code

1.\n 回车(\u000a)   
2.\t 水平制表符(\u0009)   
3.\b 空格(\u0008)   
4.\r 换行(\u000d)   
5.\f 换页(\u000c)   
6.\' 单引号(\u0027)   
7.\" 双引号(\u0022)   
8.\\ 反斜杠(\u005c)   
9.\ddd 三位八进制   
10.\udddd 四位十六进制