判断字符串是否由子串拼接而成

题目描述

给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的。

例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而"abcab"则不满足条件,输出false。

输入描述:

abcabc

输出描述:

abc

 Java代码实现如下

import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        //最长子字符串最大为其一半
        for(int i=1; i<=(str.length()/2); i++)
        {
            //每次截取前i个字符串
            String is_sub_str = str.substring(0,i);
            //利用正则表达式,替换原字符串的内容,如果最后为空,则可以被完全替换,所以是最长字串
            String temp = str.replaceAll(is_sub_str, "");
            if(temp.length() == 0)
            {
                System.out.println(is_sub_str);
                return;
            }
        }
        System.out.println(false);
    }
}

复习一下字符串常用的方法

 charcharAt(int index)
          返回指定索引处的 char 值。
 booleanequals(Object anObject)
          将此字符串与指定的对象比较。
 intindexOf(String str)
          返回指定子字符串在此字符串中第一次出现处的索引。
 intlength()
          返回此字符串的长度。
Stringreplace(CharSequence target, CharSequence replacement)
          使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
 StringreplaceAll(String regex, String replacement)
          使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
 String[]split(String regex)
          根据给定正则表达式的匹配拆分此字符串。
 char[]toCharArray()
          将此字符串转换为一个新的字符数组。
 Stringsubstring(int beginIndex, int endIndex)
          返回一个新字符串,它是此字符串的一个子字符串。
StringtoString()
          返回此对象本身(它已经是一个字符串!)。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值