String型文字列の比較を行うとき
見た目は同じ文字列なのに一致しないというケースはありうるんでしょうか?
そうとしか思えない現象が起きているんですが

String letter="れません 冬ゎやっぱりコタツだょね あったかぁ〜";
String word="コタツ";

letter.indexOf( word ) ← これが -1


入力の文字列はUTF-8で、
入力するとき .toLowerCase() とかやっているんですが何か関係あるでしょうか?

しかも、同じようにやっているのに
他の文字列(これも日本語、マルチバイト文字)では一致する場合もあります。


そしてこういう場合、何が原因というか対策などないでしょうか...