正規表現の SpannableString テキストをシークし、その表現のインスタンスの最初と最後の文字を削除するコード スニペットを使用しています。この場合は、[角かっこ] で囲まれたテキストです。
出力は同じ SpannableString である必要がありますが、括弧はありません。例えば:
input: Text [that] looks [like this]
output: Text that looks like this
ただし、関数を呼び出してテキストを SpannableString 形式で返す構文が正しくありません。
変換を行うコード スニペットは次のとおりです。
public static CharSequence removeSquareBracketsFromText(CharSequence text) {
SpannableStringBuilder outputText = new SpannableStringBuilder( text );
if( pattern != null )
{
Matcher matcher = pattern.matcher( text );
int matchesSoFar = 0;
while( matcher.find() )
{
int start = matcher.start() - (matchesSoFar * 2);
int end = matcher.end() - (matchesSoFar * 2);
outputText.setSpan( text, start + 1, end - 1, 0 );
outputText.delete(start, start + 1);
outputText.delete(end - 2, end -1);
matchesSoFar++;
}
}
return outputText;
}
SpannableString を関数に渡すときは、次のように (しようと) します。
SpannableString outputText= removeSquareBracketsFromText(inputText);
エラーは、関数を呼び出す方法の構文にあると思われますが、よくわかりません。私の IDE (Eclipse) は、エラーが単語 (removeSquareBracketsFromText': "Type mismatch: cannot convert from CharSequence to SpannableString".
どんな助けでも感謝します。おそらくおわかりのように、私は Java を初めて使用し、バックグラウンドで変数の型変換を処理する MATLAB に慣れています。