我意识到在java中GC最终会清理对象,但是我问是不是关闭你的字符串编写器是不好的做法,目前我这样做:
private static String processTemplate(final Template template, final Map root) {
StringWriter writer = new StringWriter();
try {
template.process(root, writer);
} catch (TemplateException e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
}
finally {
}
return writer.toString();
}
Run Code Online (Sandbox Code Playgroud)
我应该关闭编写器并创建一个像这样的新String:
String result = "";
...
finally {
result = writer.toString();
writer.close();
}
Run Code Online (Sandbox Code Playgroud)
这样做更好吗?
我是Android开发的菜鸟,我试图通过多个换行符多次拆分字符串.我正在尝试拆分的字符串是从数据库查询中提取的,并且构造如下:
public String getCoin() {
// TODO Auto-generated method stub
String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_QUANTITY, KEY_OUNCES, KEY_VALUE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(KEY_ROWID);
int iName = c.getColumnIndex(KEY_NAME);
int iQuantity = c.getColumnIndex(KEY_QUANTITY);
int iOunces = c.getColumnIndex(KEY_OUNCES);
int iValue = c.getColumnIndex(KEY_VALUE);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + /*c.getString(iRow) + " " +*/ c.getString(iName).substring(0, Math.min(18, c.getString(iName).length())) + "\n";
}
c.close();
return result;
Run Code Online (Sandbox Code Playgroud)
result.getCoin读成:
alphabravocharlie
Run Code Online (Sandbox Code Playgroud)
我想在换行符处拆分字符串并将每个子字符串放入一个字符串数组中.这是我目前的代码: …
ArrayList aList = new ArrayList();
List aList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
这两者之间有什么区别,哪个更好用,为什么?
这是我的代码:
string data = "...";
var stream = new StreamReader(data);
Run Code Online (Sandbox Code Playgroud)
这样可以不调用Close()方法吗?