ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
String f = rs2.getString(1);
System.out.println(f);
}
int a = Integer.parseInt(f);
我需要在此循环外获取字符串f的值并将其转换为整数。但它说“找不到符号”。如何在while循环中访问f的值?
答案 0 :(得分:2)
如果在循环之前声明f
,则可以从循环外部访问它:
ResultSet rs2 = statement.executeQuery();
String f = null;
while (rs2.next()) {
f = rs2.getString(1);
System.out.println(f);
}
int a = Integer.parseInt(f);
然而,这没有多大意义,因为在循环f
之后将包含对分配给它的最终字符串的引用,并且将忽略所有先前的字符串。
将String解析为循环中的int然后对它做一些事情(将它添加到某个Collection,处理它等等)会更有意义:
ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
String f = rs2.getString(1);
System.out.println(f);
int a = Integer.parseInt(f);
}
答案 1 :(得分:1)
只需在循环之前定义它 - 在范围内创建的变量(例如循环)仅在此范围内有效。
String f = null;
ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
f = rs2.getString(1);
System.out.println(f);
}
int a = Integer.parseInt(f);
答案 2 :(得分:1)
你需要在循环之外声明它。
ResultSet rs2 = statement.executeQuery();
String f = new String();
while (rs2.next()) {
f = rs2.getString(1);
System.out.println(f);
}
int a = Integer.parseInt(f);
基本上问题是“Integer.parseInt(f);”不知道f存在,因为f在循环内部。
因为“int a = Integer.parseInt(f);”在循环之外,它无法访问循环内的内容。
答案 3 :(得分:1)
要访问一个值OUTSIDE循环 - 您需要在循环外定义值。 喜欢
ResultSet rs2 = statement.executeQuery();
String f = null;
while (rs2.next()) {
f = rs2.getString(1);
System.out.println(f);
}
int a = Integer.parseInt(f);
但请注意,您从此循环中收到LATEST字符串值(因为在所有迭代中,您将替换此变量)。
答案 4 :(得分:0)
在循环外设置f。 f当前是循环的本地,因此一旦while循环结束它就超出了范围。在进入while循环之前将其定义为新的String。
答案 5 :(得分:0)
变量f是它所在的块的本地变量。 你需要在块之外声明它。
String f = "";
while (rs2.next()) {
f = rs2.getString(1);
要将其转换为整数,只需使用Integer.parseInt(f);