就像IDE中显示一个文件中的所有方法,是如何解析文档得到的呢,按“;”分割语句,然后判断(){}么,谢谢,如何识别一条语句是方法呢?
解决方案 »
- 用Java处理bmp图片,把bmp图片变成位图,并保存下来。快疯了。。。。。。。
- 用java多线程编程,输出"hello world"
- DetachCurrentThread() 使用感想
- 求字符串函数!!!!
- 关于查找文件的问题
- 小弟刚刚接触java,就遇到一个严重的问题,大家帮帮忙了。
- Java 下有没有ListView 控件????
- 一个I/O的问题,给100分!!!!
- 一个很酷的玩意儿,大家看看有没有办法把他弄到本地机上来运行
- jb5开发的应用工具栏中的图标显示正常,但移植到linux上运行,则图标大小不一。为何?
- 高手求救,一个菜鸟的问题 再线等候
- JBuilder与sql server 2000联接错误的问题!!!
没观察过,呵呵
1、一定会用到StringTokenizer
2、一个方法之前的字符串只能是以"{"、"}"、";"结束的。
3、方法包括访问修饰符、返回类型、方法名、(参数)、{方法体}几部分。
4、方法的修饰符、返回类型、方法名之间一定会有空格。
等等
希望对楼主能有帮助 ^_^
1.在接口中的方法是没有{方法体}的.
2.如果按";"分割比较合理.
3.访问修饰符可以没有,返回类型可以是自定义的类,在加上方法名的不确定,给判断上带来了不确定性.
比如,new A(){...}; 跟方法差不多.
所以是否可以这样总结:
1.按某种方法把全文分割,使得到的碎片包含整个方法.
2.得到的每个语句从后向前检索,
2.1如果该方法所在的类不是接口,该语句从后向前,除去空格最后一个字符必须是"}",然后向前检索,可以用栈或其他方法忽略方法体中成对的"{","}",然后找到与其匹配的"{".
2.2如果该方法所在类是接口,忽略第2步.
3.从上步得到的"{"位置,忽略空格,前一个字符是")",然后向前检索,可以用栈或其他方法忽略方法体中成对的"(",")",然后找到与其匹配的"(".这之间的字符串可自行按","和空格进行解析,得到参数.
4.从上步得到的"("位置,忽略空格,向前搜索一个单词,得到方法名.
5.继续向前搜索一个单词,该单词不可以是"new",得到返回值类型.
6.将剩下的字符串按单词全部分割,然后与关键字遍例来确定,比如"public","protected", "private","final","static","synchronized","native"......如果什么都没有按默认处理.
7完活.
大家看看按这样的方法分割.
从总体上看,在一个类中除了数据成员就是方法,还可以有静态初始化程序段,这样在每个类中划分等级.在一级"(){}"都是方法,这样就找到该类的本身的方法.在这一级"(){}"内部还可以有"(){}",称之为2级,里面包括一些if,else,while和内部类中的方法,去除判断循环,在内部类中是个递归查找的过程.这样差不多就把方法都找到了.大家看看这么想对么?