2015-04-05 27 views
1
ResultSet rs2 = statement.executeQuery(); 
while (rs2.next()) { 
    String f = rs2.getString(1); 
    System.out.println(f); 
    } 
int a = Integer.parseInt(f); 

我需要在此循環外部獲取字符串f的值並將其轉換爲整數。但它說'找不到符號'。如何在while循環中訪問f的值?在java中訪問while循環內的值?

回答

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將包含對已分配的最終字符串的引用到它,所有以前的字符串將被忽略。

它會更有意義解析字符串內環路詮釋,然後用它做(把它添加到收藏一些,對它進行處理,等等)的東西:

ResultSet rs2 = statement.executeQuery(); 
while (rs2.next()) { 
    String f = rs2.getString(1); 
    System.out.println(f); 
    int a = Integer.parseInt(f); 
} 
1

只是把它定義在循環之前 - 在範圍內創建的變量(例如循環)僅在此範圍內有效。

String f = null; 
ResultSet rs2 = statement.executeQuery(); 
while (rs2.next()) { 
    f = rs2.getString(1); 
    System.out.println(f); 
    } 
int a = Integer.parseInt(f); 
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);」在循環之外它不能訪問循環內的內容。

1

要訪問外循環的值 - 你需要在循環外部定義值。 像

ResultSet rs2 = statement.executeQuery(); 
String f = null; 
while (rs2.next()) { 
    f = rs2.getString(1); 
    System.out.println(f); 
    } 
int a = Integer.parseInt(f); 

但要知道,你從這個循環收到最新的字符串值(事業上的所有迭代,你會替換這個變量)。

0

變量f位於其所在塊的本地。 您需要在塊之外聲明它。

String f = ""; 
while (rs2.next()) { 
    f = rs2.getString(1); 

要將它轉換爲整數,只需使用Integer.parseInt(f);