编程实现以下需求
获取两个指定字符串中的最大相同子串并打印。
如:s1="asdafghjka", s2="aaasdfg"
他们的最大子串为"asd
解题思路
1.可从输入获取两个字符串或者程序内指定。
2.比较两个字符串长度,重新将str1,str2分别设置为较长的字符串与较短的字符串。
3.将较短的字符串串进行长度依次递减的子串与较长的字符串比较。
4.考虑有多个最大子串的情况。
具体过程及用到的方法说明
1.封装一个类,在有参构造方法中比较两个字符串长度,重新将str1,str2分别设置为较长的字符串与较短的字符串,如下图:
2.利用双层for循环,将较短的字符串进行长度依次递减的子串与较长的字符串比较。
3.假设有不止一个最大相同字符串,用append将其连接起来并用“,”隔开。
4.找到最大字符串后将其打印并返回。
5.若未找到相同字符串打印相应信息并返回
6.编写测试类,从键盘输入获取两个字符串
运行结果
图|有最大相同子串
图|无相同字符
小结
知识点:
StringBuilder类的使用
▪ 方法 append(String str) 的使用,将指定类型字符串追加到此序列。
▪ 方法 deleteCharAt(int index) 的使用,按此顺序删除指定位置的 char 。String类的使用
▪ 方法 contains(CharSequence s) 的使用,当且仅当此字符串包含指定的char值序列时,才返回true。
▪方法 substring(int beginIndex, int endIndex) 的使用,返回一个字符串,该字符串是此字符串的子字符串。