MyException - 我的异常网
当前位置:我的异常网» J2SE »  String 练习题

String 练习题

www.MyException.Cn  网友分享于:2015-11-16  浏览:0次
求助 String 练习题
问下,为什么这个没有 w?


package string;


import java.util.ArrayList;
import java.util.List;


public class question {
public static void main(String[] args){
List<String> str7 = getMaxSubString("abcwerthelloyuiodefz", "abllw");
System.out.println(str7);
}



public static List<String> getMaxSubString(String str1, String str2){
String maxStr = (str1.length() > str2. length())? str1 : str2;
String minStr = (str1.length() < str2. length())? str1 : str2;
int len = minStr.length();
List<String> list = new ArrayList<String>(); 
for(int i = 0; i<len; i++){
for(int x = 0, y = len-i; y<=len; x++,y++){
String str = minStr.substring(x, y);
System.out.println(str);
if(maxStr.contains(str)){
list.add(str);
}
}
if(list.size() != 0){
return list;
}
}
return null;
}
}
------解决思路----------------------
为什么要有w....
------解决思路----------------------
问题关键在于循环时候结束
if(list.size() != 0){
return list;
}
当 i = 3时,System.out.println(str);输出的结果为:ab ,bl ,ll ,lw;
此时执行
if(maxStr.contains(str)){
list.add(str);
}
发现 ab,ll 满足条件会被添加到list中,接下来执行(因为这段代码在for循环内)
if(list.size() != 0){
return list;
}
发现size为2,不满足条件,getMaxSubString直接就return掉了,
所以没有 a,b,l,l,w 了
建议自己dubug看一下整个循环的执行过程
------解决思路----------------------
首先得说清楚getMaxSubString这个函数是干嘛的,如果按其字面意思,获得最大子串,那么楼主代码没问题,因为w这个子串明显要比ab或ll要短,所以返回时不会有w。
其实从代码上看,这里实现方法就是从较短的那个字符串里从长到短获取其字串,然后看较长的那个字符串里是否也具有这个子串,若有则添加到返回的List中,由于是要获得最大字串,所以从长到短比较(且同一长度字串一次全部比较完再判断List是否为空),只要List中不为空了,那么就说明List中已经是最长子串了,故直接返回这个List。
如果要有w,那么楼主可能认为这个函数的意思是获取两个字符串的公共子串,只要把那个判断List是否为空然后返回的那一个if语句段提到外面一层大括号就可以了。
同楼上建议楼主debug单步看一下,很清楚。

文章评论

总结2014中国互联网十大段子
总结2014中国互联网十大段子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
一个程序员的时间管理
一个程序员的时间管理
Java程序员必看电影
Java程序员必看电影
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为什么程序员都是夜猫子
为什么程序员都是夜猫子
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
我的丈夫是个程序员
我的丈夫是个程序员
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我是如何打败拖延症的
我是如何打败拖延症的
程序员和编码员之间的区别
程序员和编码员之间的区别
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
鲜为人知的编程真相
鲜为人知的编程真相
程序员的鄙视链
程序员的鄙视链
旅行,写作,编程
旅行,写作,编程
那些争议最大的编程观点
那些争议最大的编程观点
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
10个调试和排错的小建议
10个调试和排错的小建议
漫画:程序员的工作
漫画:程序员的工作
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
如何成为一名黑客
如何成为一名黑客
 程序员的样子
程序员的样子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
每天工作4小时的程序员
每天工作4小时的程序员
编程语言是女人
编程语言是女人
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
中美印日四国程序员比较
中美印日四国程序员比较
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有