我试过,但似乎我找不到。单词的基本形式是“ 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 的基本形式) 。有没有有效的方法来解决这个案子。感谢
答案 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);
}
这样我们就不会理所当然地认为它有前缀,也不会只修改基础的第一个字符。