检查带前缀&的单词后缀

时间:2016-05-06 04:19:57

标签: java regex string

我试过,但似乎我找不到。单词的基本形式是“ pakai ”,修改后的单词(前缀)是“ memakai ”。

前缀为“ me ”,但当它合并为“ pakai ”时,它会转为第一个字母“ p ”到“ m ”,所以“ pakai “转为” makai “。

所以 pakai - >的 memakai

k1.contains(k2) --> false, it's correct since there is no "p" in "memakai"
k1.indexOf(k2) --> -1

我试过

name

我的问题是如何检查 w1 是否包含 w2 w2 w1 的基本形式) 。有没有有效的方法来解决这个案子。感谢

2 个答案:

答案 0 :(得分:2)

试试这个:

K1="memakai";
K2="pakai";
boolean retVal;
retVal = K1.endsWith( K2.substring(1) );
System.out.println("Returned Value = " + retVal );

如果你不知道.substring(StsrtIndex)的起始索引,请使用:

boolean retVal=Boolean.FALSE;
for(int i=0; i<(K2.length()-1);i++)
    retVal = K1.endsWith( K2.substring(i) );
System.out.println("Returned Value = " + retVal );

答案 1 :(得分:1)

根据你在另一个关于不想使用索引的答案上发表的评论,我将添加这段代码。它应该满足任何具有修改基础的单词的一般要求。

boolean isBase(String input, String prefix, String check) {
    return input.startsWith(prefix) &&
           input.substring(prefix.length(), prefix.length()+check.length()).equals(check);
}

这样我们就不会理所当然地认为它有前缀,也不会只修改基础的第一个字符。