Topic: java 基础 的经典问题。(DOS, command) |
Print this page |
1.java 基础 的经典问题。(DOS, command) | Copy to clipboard |
Posted by: develop8 Posted on: 2006-05-29 07:54 /*this class can search defined char. this class receive commandline argument(命令行参数)*/ class search{ public static void main(String[] args){ char c; Character c2; String sc=Character.toString(args[0].charAt(0)); for(int i=1;i<10000;i++){ if (i==7) continue; c= (char)i; c2 = new Character; if(sc.equals(c2.toString())){ System.out.print(i+": "+c); //System.exit(0); } }// end of loop. }// end of main. } /*以下是在中文的命令行里的调试结果: bug出在当你用参数*的时候,当你以下输入: java search * 系统输出 : 97: a 当你用*带头的任何字符:出来*a。 都会正确显示:42:* 这是为什么啊? String 转为字符的时候,丢失数据吗? 还有当你输入 java search & 系统认不出是它是字符串,这是为什么啊? 请帮我分析什么原因好吗????????????? 更希奇的是当你输入: java search ^ DOS 会提示 More? 然后我输入别的一个字符,程序正常运行, More? 在DOS里这是什么意思: 在什么情况下出现这个提示? 还有我注释掉的System.exit(0);是否有用,我想用这个语句的 意思是,当找到要找的结果后结束,循环,当不用这个语句的话 程序会继续进行直到循环结束吗? 还有谁知道 中文的命令行(cmd)和 英文的命令行(command)的区别? 以上我问了这么多?不知道那位高手能对答如流? 如果都能答出来,那他肯定是对系统了解很深的人,请耐心的 高手帮我解答好吗?如果不想公开答案:可以发到我的email: foreverzr6x6@yahoo.com.cn 也许有的不懂英语的人会说我,邮箱名都起那么复杂的名字, 可是其实不复杂,因为有规律的:forever+zr+6x6=foreverzr6x6. */ |
2.Re:java 基础 的经典问题。。。 [Re: develop8] | Copy to clipboard |
Posted by: lisliefor Posted on: 2006-05-29 15:15 首先声明,我很少在cmd下面编译java文件。所以,在尝试这样编译的时候,出现了这样的问题: 我把search文件,放在e:\目录下: E:\javac search.java 没问题,e:\下产生一个class文件。但我在输入这个命令的时候,抛出异常了: E:\java search * 异常名为java.lang.NoClassDefFoundError,我也尝试在serach前面加了路径(即:java e:\search *),没效果。好吧!我妥协。(有经验的朋友提醒一下我出的问题) 将程序改成这个样子(我使用Eclipse): package help; import java.io.*; public class search { public static void main(String[] args) { char c; Character c2; BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); String sc = ""; try{ sc = buff.readLine(); }catch(IOException e){ System.out.println; } for (int i = 1; i < 10000; i++) { if (i == 7) continue; c = (char) i; c2 = new Character; if (sc.equals(c2.toString())) { System.out.print(i + ": " + c); System.exit(0); } } } } 你在后台输入任何字符都能正常显示。 注:为什么当i等于7时,停止迭代——7对应的字符为空格。 如果注释了System.exit(0)语句,整个程序将在运行10000次迭代后结束,效率低下。而作者的想法是,在找到改字符对应的ascii值后结束。注释掉,没必要。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |