给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的。
例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而"abcab"则不满足条件。
输入描述:
非空字符串
输出描述:
如果字符串满足上述条件,则输出最长的满足条件的的子串;如果不满足条件,则输出false。
这里主要是使用 string.subString(int startIndex,int endIndex) 取重复的字符串,使用string1.equals(string2)来判断子串是否一样;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner str=new Scanner(System.in);
while(str.hasNext()){
String s=str.next();
String result=isString(s);
int l=s.length();
if(l<1||s==null){System.out.println("false");}
else{
System.out.println(result);}
}
}
private static String isString(String s) {
// TODO Auto-generated method stub
String result="false";
for (int i=1;i<s.length();i++){
if(s.length()%i==0){
int subnum=s.length()/i;
String subs=s.substring(0,i);
int j=0;
for(j=1;j<subnum;j++){
if(!subs.equals(s.substring(j*i, j*i+i))){
break;
}
}
if(j>=subnum){return subs;}
}
}
return result;
}
}