Devo fare il seguente esercizio :
leggere due stringhe da tastiera (FATTO),
inserirle in oggetti StringBuffer (FATTO),
visualizzare posizione iniziale di ciascuna occorrenza della secondra stringa nella prima(PROBLEMA)

Il problema è che ho utilizzato il metodo IndexOf, che a mio parere sembra il più adeguato per farmi restituire la posizione, ma nonostante ciò non mi restituisce le posizioni corrette.
Proprio ieri ho studiato la classe StringBuffer (qualche giorno prima la String), ma, forse perchè sono ancora fresco di Java non ne vedo la sua utilità in questo esercizio.

public static void visualizzaPosizione(String str1, String str2)
{
StringBuffer s1 = new StringBuffer(str1);
StringBuffer s2 = new StringBuffer(str2);
int pos;

for(int i=0;i<s2.length();i++)
{
for(int j=0;j<s1.length();j++)
{
if(s1.charAt(j)==s2.charAt(i))
{
pos = str1.indexOf(s2.charAt(j));
System.out.println("L'occorrenza della stringa2 " +s2.charAt(i)+ " è presente
nella stringa1 " +s1+ " in posizione "+pos );
}
}
}
}