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 四位十六进制