1

正規表現の 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 に慣れています。

4

1 に答える 1

0

メソッド宣言を次のように変更します。

public static SpannableString removeSquareBracketsFromText(CharSequence text) {

そして、return ステートメントを次のように変更します。

    return new SpannableString(outputText);
于 2012-09-01T22:52:31.320 に答える