加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何检查一个字符串是否包含其字符顺序的第二个字符串?

发布时间:2020-12-15 00:01:24 所属栏目:Java 来源:网络整理
导读:我刚刚开始,我完全迷失了如何做到这一点. 我希望能够检查字符串是否有较小的字符串,如果字符串按顺序包含字符串的字母,则返回true. 我不确定如何确保第二个字符串的字母顺序排列,即使它们之间还有其他字母. 一个例子是“化学”对于字符串“hit”将返回true.
我刚刚开始,我完全迷失了如何做到这一点.

我希望能够检查字符串是否有较小的字符串,如果字符串按顺序包含字符串的字母,则返回true.

我不确定如何确保第二个字符串的字母顺序排列,即使它们之间还有其他字母.

一个例子是“化学”对于字符串“hit”将返回true.

但是对于字符串“him”它会返回false.

任何帮助将不胜感激.

编辑:谢谢,我将“substring”改为字符串.正如我所说,我刚开始并且不知道这意味着别的什么.我非常感谢所有的帮助.它应该让我朝着正确的方向前进.

解决方法

一般的方法是迭代较长字符串的字符(“化学”),始终跟踪较短字符串中的下一个所需字符的索引(“命中” – 先是0,然后一旦找到h,则为1一旦你找到我,然后当你发现你已经完成了).例如:
public static boolean containsSubsequence(
        final String sequence,final String subsequence) {
    if (subsequence.isEmpty()) {
        return true;
    }
    int subsequenceIndex = 0;
    for (int i = 0; i < sequence.length(); ++i) {
        if (sequence.charAt(i) == subsequence.charAt(subsequenceIndex)) {
            ++subsequenceIndex;
            if (subsequenceIndex == subsequence.length()) {
                return true;
            }
        }
    }
    return false;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读