目前我正在从SQL数据库表中提取数据,遗憾的是,一个特定列包含多个值(特别是地址)。所以我试图将这个地址数据添加到我的程序的textArea中,但是我需要打破那里的行,所以我想我可能会尝试对其进行标记,然后.append(.nextToken +“\ n”)除非有更好的方法吗?
这是我的一些尝试性的东西
try {
rs = statement.executeQuery(query);
if (rs.next()) {
String addressLine = rs.getString("adres");
StringTokenizer st = new StringTokenizer(addressLine);
String token = st.nextToken();
dbNameField.setText(rs.getString("name"));
dbNazwiskoField.setText(rs.getString("surname"));
dbAgeField.setText(""+rs.getInt("age"));
rs.getInt("id");
while(st.hasMoreTokens()){
dbAddressField.append(token+ "\n");
}
}
除了它似乎没有工作
答案 0 :(得分:0)
StringTokenizer
是遗留类,因此使用它没有问题(如docs中所述),但不建议这样做。
JavaDoc推荐的一个更简单的解决方案是使用String split(String regex)
方法并使用foreach循环迭代返回的数组。
还有一个细节 - 请勿使用builder.append(token + "\n")
,有一个更清洁的方法:builder.append(token).append(System.lineSeparator())
。
使用\n
取决于平台,因为它不适用于基于unix的系统。
如果编译器没有正确优化它,使用String
连接也会降低程序的速度。特别是如果您准备好StringBuilder
:)