В зависимости от требований к производительности Есть несколько вариантов:
Один из вариантов, как уже было сказано другими, будет искать последнего индекса \n
и если это последний символ рекурсивно ищет следующий для последнего индекса и т. д., пока вы не нажмете последнюю непустую строку.
Другим вариантом было бы использовать регулярные выражения, чтобы искать что:
StringBuilder sb = new StringBuilder("Hello, how are you?\nFine thanks!\nOk, Perfect...\n\n");
Pattern p = Pattern.compile("\n[^\n]+\n+$");
Matcher m= p.matcher(sb);
//if there is a last line that matches our requirements
if(m.find()) {
sb.delete(m.start(0), m.end(0));
}
Если рассматривать пробелы как пустые вы можете изменить выражение \n[^\n]+[\s\n]+$
(в виде строки Java, которая была бы "\n[^\n]+[\\s\n]+$"
).
что вы подразумеваете под последней строкой? Можете ли вы поделиться образцом String и показать, какую часть вы хотите удалить? –
Используйте 'lastIndexOf (String str)', который возвращает индекс внутри этой строки самого правого вхождения указанной подстроки. – MaxZoom