Я использую фрагмент кода, который ищет в тексте 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) говорит мне, что ошибка в слове (removeSquareBraccketsFromText': «Несоответствие типов: невозможно преобразовать из CharSequence в SpannableString».
Любая помощь приветствуется. Как вы, наверное, заметили, я новичок в Java и привык к MATLAB, который обрабатывает преобразование типов переменных в фоновом режиме.