//输入一行字符串,找出出现的相同且长度最长的字符串,输出它及其首字母的置比如:“yyabcdagaerabceg”答案应该是abc
想法是把字符串切分成多个子串,而子串是从原串长度-1的长度开始,依次递减,然后看原串中是否出现子串多次,如果有跳出循环直接输出
public static void main(String[] args) {
String test="gaerabcjierabcer";
int length=test.length();
int flag=1;
String resultString=null;
for(int i=length-1;i>0&&flag!=0;i--)//flag用于跳出两层循环
for(int j=0;j<length-i+1;j++)
{
String tempString=test.substring(j, j+i);//依次取出子串
int n1=test.indexOf(tempString);
int n2=test.lastIndexOf(tempString);
if(n1!=n2)//比较是否出现在不同位置
{
flag=0;
resultString=tempString;
break;
}
}
System.out.println(resultString);
}
}