锁定老帖子 主题:问一个不太明白的面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-14
程序本身是没问题的,但楼主没有考虑中文的问题
|
|
返回顶楼 | |
发表时间:2009-07-14
GG还没有找到工作?
|
|
返回顶楼 | |
发表时间:2009-07-14
mccxj 写道 藝之憾 写道 if ((null == str) || (str.length() <= 1)) { return str; } 如果str为空,你返回的值是空,如果在其他地方你用到这个返回值,则会有空指针异常。如: String s = myclass.reverse(str); s.hashCode();//调用s的任何一个方法都会有异常 单单就上面的代码。。没什么错 LZ问什么时候go wrong嘛...我就说他返回空时,再调用这个String,就会出问题,我说的也没什么错哦.. LZ代码没错,但有隐患,处理得还不够严谨,这样的代码写在系统中,很容易让软测人员找到漏洞。 按某些公司做法,人家就加钱,自己就要扣钱了.. |
|
返回顶楼 | |
发表时间:2009-07-14
最后修改:2009-07-14
jiyanliang 写道 西北野狼 写道 空串处理不对,但不会抛错
if ((null == str) || (str.length() <= 1)) { return str; } 老外都是那么写的 代码就没错 "null == str" |
|
返回顶楼 | |
发表时间:2009-07-14
藝之憾 写道 langhua9527 写道 public class myClass implements IRev { public String reverse(String str) { if ((null == str) || (str.length() <= 1)) { return ""; } return new StringBuffer(str).reverse().toString(); } } 这样做会把单字符的字符串改变了。 要不在reverse前判断,要不就不要 str.length() <= 1 恩,那分别去判断吧 |
|
返回顶楼 | |
发表时间:2009-07-14
lkfs 写道 程序本身是没问题的,但楼主没有考虑中文的问题
我试了,中文没有问题的啊 |
|
返回顶楼 | |
发表时间:2009-07-14
最后修改:2009-07-14
解答是没有什么错的,除非题干没有说清
|
|
返回顶楼 | |
发表时间:2009-07-15
if ((null == str) || (str.equa1s(""))
|
|
返回顶楼 | |
发表时间:2009-07-15
最后修改:2009-07-15
拷到ide里运行一下不就知道了么?
一个文件中不能存在两个public class的声明... public interface IRev { public String reverse(String str); } class myClass implements IRev { public String reverse(String str) { if ((null == str) || (str.length() <= 1)) { return str; } return new StringBuffer(str).reverse().toString(); } } |
|
返回顶楼 | |
发表时间:2009-07-15
我晕,这有点那啥了,我们都把注意力集中在方法的实现上了
简单的问题复杂化了。。。 不应该啊不应该 |
|
返回顶楼 | |