Предположим, что у меня есть ArrayList < String >
именем arr
и StringBuilder
именем buf
, я использую следующий метод для добавления содержимого buf
в arr
.
if ( !buf.toString( ).equals( "" ) ) { //allow only non-empty Strings.
arr.add( buf.toString( ) );
}
Но он вызывает buf.toString( )
дважды. Я не хочу этого в своем коде. Кроме того, есть ли другой (короткий или простой или эффективный или что-то еще) способ достичь этого?
EDIT: Кроме того, я делаю это в цикле, так ли это эффективно?
Существует метод API String#isEmpty()
для проверки пустых строк в Java, используйте его. Это будет более элегантно.
String temp = buf.toString();
if (!temp.isEmpty()) {
arr.add(temp);
}
Я думаю, вам нужен метод length()
вместо toString, потому что это вызов метода суперкласса и создание нового экземпляра String, поэтому я рекомендую вам следующее:
if(buf.length()>0)
{
arr.add(buf.toString()); // one call!
}