2016-05-06 3 views
2

Я пробовал, но кажется, что не смог найти. Базовая форма слова «pakai» и модифицированный слово (с префикса) является «memakai».Проверка на слова с префиксом и суффикс

Префикс «меня», но, когда он получает в сочетании с «pakai», получается первый алфавит «р» к «м», так "pakai" turn to "makai".

Так pakai ->memakai.

String w1 = "memakai"; 

String w2 = "pakai"; 

Я попытался

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

Мой вопрос заключается в том, чтобы проверить, если w1 содержит в w2 (w2 является базовой формой w1). Есть ли эффективный способ решить этот случай. Благодаря

+2

Если возник вопрос, я пропустил его. – shmosel

+1

Вы можете попробовать: 'k1.contains (k2.substring (1))' – Titus

+0

Это работает titus, но, предположительно, я хочу это сделать, не зная индекса * '1' * внутри * подстроки (...) * –

ответ

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); 
+0

Это работает, но, предположительно, я хочу сделать это, не зная индекса '1' внутри подстроки (...) - –

+0

Если начальный индекс является переменным, то вы будете иметь поставить цикл как 'for (int i = 0; i <(K2.length() - 1); i ++)' и проверить. –

+0

ok спасибо, я дал вам upvote –

1

На основании комментария вы публикуемую на другой ответ о не желая использовать индекс, я добавлю этот бит кода. Он должен удовлетворять общим требованиям для любого слова с модифицированной базой.

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

Таким образом, мы не считаем само собой разумеющимся, что он имеет префикс, ни, что только первый символ основания изменяется.

+1

Хорошо, спасибо, я попробую! –