黑马程序员技术交流社区
标题:
关于String的问题
[打印本页]
作者:
谭培龙
时间:
2012-7-26 18:14
标题:
关于String的问题
本帖最后由 谭培龙 于 2012-7-27 00:51 编辑
class StringTest3
{
public static String getMaxSubString(String s1,String s2)
{
String max="",min ="";
max = (s1.length()>s2.length())?s1:s2;
min = (max==s1)?s2:s1;
for (int x=0;x<min.length() ;x++ )
{
for (int y=0,z=min.length()-x;z!=min.length() ;y++,z++ )
{
String temp=min.substring(y,z);
//System.out.println(temp);
if(max.contains(temp))//if(indexOf(temp)!=-1)
return temp;
}
}
return "";
}
public static void main(String[] args)
{
String s1="abcwerthelloyuireu";
String s2="cbhellobnm";
System.out.println(getMaxSubString(s1,s2));
}
}
复制代码
1,内for循环里面的Z代表什么?
2,String temp=min.substring(y,z);//这句话是什么意思?
3,return "";这里可以把方法改成void这里不写吗?
作者:
罗宵
时间:
2012-7-26 18:33
这个题就是将min字符串一次减少一位去和max比较,看是否属于max;
z是min字符串中的一个索引。
String temp=min.substring(y,z);这个是从min中截取一个字符串索引从y到z,然后赋给temp。
如果改成void之后可以不写return "",但是里面的内容也要改
for(int x=0; x<min.length(); x++){
//我们用y表示min串的头角标,z表示min串的尾角标.
for(int y=0,z=min.length()-x; z<=min.length(); y++,z++){
String temp = min.substring(y,z);
if(max.contains(temp)){
System.out.println(temp);
return;
}
}
}
并且主方法中getMaxSubString(s1,s2);就可以了
附张图
2.jpg
(60.75 KB, 下载次数: 12)
下载附件
2012-7-26 18:32 上传
作者:
王渠
时间:
2012-7-26 18:39
class StringTest3
{
public static String getMaxSubString(String s1,String s2)
{
String max="",min ="";
max = (s1.length()>s2.length())?s1:s2;//得到了两个字符串最长长度和最短长度。
min = (max==s1)?s2:s1;
for (int x=0;x<min.length() ;x++ )
{
for (int y=0,z=min.length()-x;z!=min.length() ;y++,z++ )
{
复制代码
作者:
王渠
时间:
2012-7-26 18:43
class StringTest3
{
public static String getMaxSubString(String s1,String s2)
{
String max="",min ="";
max = (s1.length()>s2.length())?s1:s2;//这里获取到两个字符串长度的最大值和最小值。
min = (max==s1)?s2:s1;
for (int x=0;x<min.length() ;x++ )//外层循环是用来控制temp子串的长度的,当内层循环完一次后,外层+1,temp的长度就减少1.
{
for (int y=0,z=min.length()-x;z!=min.length() ;y++,z++ )//这里y是被截取的短字符串的头角标,z是尾角标。y和z同时自增,是保证长度。
{
String temp=min.substring(y,z);
//System.out.println(temp);
if(max.contains(temp))//if(indexOf(temp)!=-1)//如果截取到了符合标准的字符串,就为真,返回子串。
return temp;
}
}
return "";//因为没有截取到。返回了一个空字符串
}
public static void main(String[] args)
{
String s1="abcwerthelloyuireu";
String s2="cbhellobnm";
System.out.println(getMaxSubString(s1,s2));
}
}
作者:
王楠
时间:
2012-7-26 18:49
因为你的方法是有返回类型值得,所以不能return void的
z是尾角标。y和z同时自增,是保证长度
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2