高手,您好:
    我是一名学习软件工程的学生,今天我写了一个小测试程序,如下:
    
public class Test32 {

public Test32(){
String str = "cjco$cjcocjco$cjcjcoco$cococjcjcjco";
String[] str1 = {"","","",""};
str1 = str.split("$");
for(int i=0;i<str1.length;i++){
System.out.println(str1[i]);
}
}
public static void main(String[] args){
new Test32();
}
}
 
    得到的“console窗口中的结果”如下:
    
    我将上面的代码中的第7行修改为:
    str1 = str.split("\$");
    之后,得到的“编译器”窗口中的内容如下:
    
    我有将上面的代码中的第7行代码修改为:
    str1 = str.split("\\$");
    之后,得到的“console”窗口中的内容如下:
    
    这里的三个窗口的输出,反映出了关于“转义字符”的输出逻辑和Java在此部分的语法.
    弟我在这一部分,学得不是很扎实,希望能够得到高手的点拨:
    这三个窗口中的内容,说明了“Java的语法对于转义字符”是“怎样进行控制和设计的”....?
    在我的程序中的split()函数中:
    为什么我用“一个$”符号,面向字符串中的“$分隔符”的“分隔标记”, 会产生:“输出的效果无视我写的split()函数”?
    为什么我用“一个\$”符号,面向字符串中的“$分隔符”的“分隔标记”,会产生:
    无法通过MyEclipse的编译,的结果...?
    为什么我用“一个\\$”符号,面向字符串中的“$分隔符”的“分隔标记”,会产生:
    “完美输出我想要的答案”的结果....?
    希望高手能够从:
    “计算机体系的"转义字符"以及计算机体系处理"转义字符的底层设计"和"计算机储存数据的结构"以及"计算机硬件在进行上述操作过程中的反应"”来进行弟我的这个问题的讲解.....
    希望得到高手的详细解答..
    谢谢高手!!
    七十分奉上!!
                                                          一位日日夜夜向着理想奔跑的筑梦者
                                                         2013年9月9日星期一早晨5点01分javamyeclipse设计转义字符数据

解决方案 »

  1.   

    $是特殊字符,需要转义,要写成\$
    而\也是特殊字符,也要转义,所以就得写成"\\$"
    特殊字符的转义:
    http://blog.163.com/skk1987@126/blog/static/293034132010213197212/
      

  2.   

    split()的参数是正则表达式,$在正则表达式中表示字串结尾。想用$分割需要转义,其他的楼上已经说了。
      

  3.   

    楼主,这个问题和"计算机储存数据的结构"以及"计算机硬件在进行上述操作过程中的反应"并没有多大关系。$是java语言中很普通的一个字符,和a,b,c一样。正常使用并不需要被转意。但是你在这里使用了,split方法,这个方法的参数是正则表达式,$是正则表达式中的关键字,所以要被转意才能使用。这个转意不同于秘java普通字符转意,像/n那种,java提供了两种方式//$和[$],楼主不妨试下。
      

  4.   

    谢谢1楼顺溜哥的点拨!!
    您又为我花心血了..
    昨晚就是你哥,您也又来帮我了..
    但是,希望您下次能尽量再多些几行字,要不,您要我“多给些分”或者“给您标”的话...
    弟我..
    不太好做....
    ghostkngiht哥,不怎么迷糊哥,刘文之哥,谢谢您们三位的点拨!!
    okafor2011哥,也谢谢您的点拨!!
    建议7楼的朋友换一个头像,也谢谢你了..