Я предлагаю перезаписать класс TextView
собственной реализацией:
public class CustomTextView extends TextView{
// Overwrite any mandatory constructors and methods and just call super
public void removeLastLine(){
if(getText() == null) return;
String currentValue = getText().toString();
String newValue = currentValue.substring(0, currentValue.lastIndexOf("\n"));
setText(newValue);
}
}
Теперь вы можете использовать что-то вроде:
CustomTextView textView = ...
textView.removeLastLine();
В качестве альтернативы, поскольку вы, похоже, ищете однострочник без создания String temp
по какой-то причине, вы можете сделать это:
textView.setText(textView.getText().toString().replaceFirst("(.*)\n[^\n]+$", "$1"));
Regex объяснение:
(.*) # One or more character (as capture group 1)
\n # a new-line
[^\n] # followed by one or more non new-lines
$ # at the end of the String
$1 # Replace it with the capture group 1 substring
# (so the last new-line, and everything after it are removed)
Попробуйте онлайн.