posted on 2007-02-27 08:20 我为J狂 阅读(2717) 评论(15) 编辑 收藏 所属分类: Java算法
if ( ! word.equals( "" )) 最好改为!"".equals(word) 因为如果word在前的话很容易引起nullPoint异常 回复 更多评论
真是金玉良言,我会在以后的开发过程中加以改进的。 回复 更多评论
其实要认省点代码。这样就不用比较NULL了。 for ( int i = 0 ;i < words.length-1;i ++ ) 回复 更多评论
别在循环里用+号哦 回复 更多评论
“永恒之光”的方法真妙!以上的程序改为: String[] words = { " a " , " b " , " c " } ; String word = "" ; int i=0; for ( i = 0 ;i < words.length-1;i ++ ) { word+=words[i]+" 、 "; } word +=words[i]; 不但节省了代码,而且不用比较NULL了。 对于 Lingo提出的问题“别在循环里用+号”,我不知道其中的原因,请Lingo解释一下,谢谢。 回复 更多评论
不用+ 的话,就不要用String了,只好用StringBuffer咯 回复 更多评论
是不是将程序改成这样? String[] words = { " a " , " b " , " c " } ; StringBuffer word =new StringBuffer(""); int i=0; for ( i = 0 ;i < words.length-1;i ++ ) { word=word.append(new StringBuffer(words[i]).append(" 、 ")); } word=word.append(words[i]); 如果这样写,代码的可读性降低,很不好理解。 我想Lingo提出“别在循环里用+号”另有涵义。 回复 更多评论
String[] words = { " a ", " b ", " c " };StringBuffer word = new StringBuffer("");int i = 0;for (i = 0; i < words.length - 1; i++) { word.append(words[i]).append("、");} word.append(words[i]);这样不可以吗?? 回复 更多评论
呵呵,是我将程序写复杂了,见笑了。 回复 更多评论
@我为J狂 Equals的时候尽量用"内容"开头,这样不用判断空 正如Lingo说的不要在循环中使用字符串的+,因为字符串是非可变的对象,使用+基本上等于new StringBuffer() apend() apend() toString。比直接使用StringBuffer多了一次new,如果写在循环中会很大程度降低效率。 如果是Jdk1.5可以在StringBuilder和StringBuffer之间选择一下,原因可以看看这里http://www.blogjava.net/dreamstone/archive/2006/10/17/75608.html 回复 更多评论
@我为J狂 int i = 0; for (i = 0; i < words.length - 1; i++) { word.append(words[i]).append("、"); } 这种写法不太好,呵呵。因为容易犯复制粘铁错误,如出现 等同于for 循环的迭代好于while循环 这样比较好点。 for (int i = 0; i < words.length - 1; i++) { word.append(words[i]).append("、"); } 回复 更多评论
另外关于分割的情况,如果使用、分割有的时候会有些限制,比如用户恰好输入了、,这个时候需要转义,是挺麻烦的事情,有个解决方案是这样,可以使用用户不可能输入的字符来分割,例如(char)1 看上去就是个乱码,呵呵 你的表真有意思,刚才正好23:00,一顿响,吓了我一跳一以为中病毒了。 回复 更多评论
@dreamstone 写成您说的那样更改: for (int i = 0; i < words.length - 1; i++) { word.append(words[i]).append("、"); } 那么我最后一行的代码:word.append(words[i]); 其中的变量i就没有定义了,显然是不行的。 对于您提出的粘贴错误问题我能理解;我举例说明一下, //代码1 for(Iterator it=list.iterator();it.hasNext();) { } //代码2 Iterator it=list.iterator(); while(it.hasNext()) { } 对于以上两段代码,代码1发生粘贴错误的几率要远远小于代码2。 回复 更多评论
那就这么写吧 for (int i = 0; i < words.length; i++) { if(i != 0){ world.append("、"); } word.append(words[i]); } 回复 更多评论
@slx 哈哈,到目前为止,您的方法最棒!谢谢。 回复 更多评论
Powered by: BlogJava Copyright © 我为J狂