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':“类型不匹配:无法从 CharSequence 转换为 SpannableString”。

任何帮助表示赞赏。正如您可能知道的那样,我对 Java 相当陌生,并且习惯于在后台处理变量类型转换的 MATLAB。

4

1 回答 1

0

将方法声明更改为此:

public static SpannableString removeSquareBracketsFromText(CharSequence text) {

并将返回语句更改为:

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