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

前端之家收集整理的这篇文章主要介绍了如何检查一个字符串是否包含其字符顺序的第二个字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始,我完全迷失了如何做到这一点.

我希望能够检查字符串是否有较小的字符串,如果字符串按顺序包含字符串的字母,则返回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;
}
原文链接:https://www.f2er.com/java/126921.html

猜你在找的Java相关文章