【发布时间】:2012-09-01 22:21:44
【问题描述】:
我正在使用一个 sn-p 代码,它通过 SpannableString 文本寻找正则表达式,并删除该表达式的任何实例的第一个和最后一个字符 - 在这种情况下,文本由 [方括号] 绑定。
输出应该是相同的 SpannableString,但没有括号。例如:
input: Text [that] looks [like this]
output: Text that looks like this
但是,我无法正确调用函数并以 SpannableString 格式返回文本。
这是进行转换的代码 sn-p:
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。
【问题讨论】:
标签: java spannablestring