2012-04-03 13 views
2

Stringの値をデータベースから取り出し、文字列メソッドsplit()を使用して文字列配列に変換しました。ResultSetのSQL結果から配列を取り込む

ResultSet set = state.executeQuery("SELECT * FROM numberLotto"); 
while(set.next()) 
{ 
    num1 = set.getString(1);     
    num2 = set.getString(2); 
    num3 = set.getString(3); 
    num4 = set.getString(4); 
    num5 = set.getString(5); 
    num6 = set.getString(6); 
    num7 = set.getString(7); 
    totalLotto += num1 + " " + num2 + " " + num3 + " " + num4 + " " + 
     num5 + " " + num6 + " " + num7 + " " + "/"; 
} 
String[]listOfNumbers = totalLotto.split("/"); 

結果の出力は、として

3 18 27 38 41 45 47  
4 7 11 15 22 33 42 
2 9 15 23 24 39 44 
4 11 16 17 35 39 48 

等私は、個々の番号をループすることができるように配列の配列に上記の数字を追加することができる方法

に従っているのですか?(及びその後、勝利数のリストに含まれているかどうかを確認してください)

種類について

+1

を変更することができ、あなたは何を試してみましたか?また、あなたのデータベースが数値データ型として数値を格納するだけではない理由がありますか? –

+0

結果セットによって返された行数を取得し、その集合を実行する前に多次元配列を宣言できます。次に値を直接配列に入力します。 – likenoother

答えて

4

なぜ文字列を使用していますか?これは、整数がより良い試合になるように、数字のようだ:

List<int[]> listOfNumbers = new ArrayList<int[]>(); 
while(set.next()) { 
    int[] numbers = new int[7]; 
    for (int i = 0; i < numbers.length; i++) { 
     numbers[i] = set.getInt(i + 1); 
    } 
    listOfNumbers.add(numbers); 
} 

必要な場合は、明らかにもInteger[]を使用することができます。

2

あなたがArrayListStringの配列を使用することができますので、listOfNumbers[0]

3 18 27 38 41 45 47 

であると仮定し

String[] listOfNumbers = totalLotto.split("/"); 
numbers.add(listOfNumbers[0].split(" ")); 

:そして、さらにスペースでlistOfNumbers[0]を分割し、コレクションに結果を追加

ArrayList<String[]> numbers = new ArrayList<String[]>(); 

をスペースで分割すると、それぞれの位置に数字のあるString[]が表示されます。

2
ResultSet set = state.executeQuery("SELECT COUNT(*) FROM numberLotto"); 
String[][] array = new String[rs.getInt(1)][6]; 

ResultSet set = state.executeQuery("SELECT * FROM numberLotto"); 
int i = 0; 
    while(set.next()) 
    { 

       array[i][0] = set.getString(1);     
       array[i][1]= set.getString(2); 
       array[i][2]= set.getString(3); 
       array[i][3]= set.getString(4); 
       array[i][4]= set.getString(5); 
       array[i][5]= set.getString(6); 
       array[i][6]= set.getString(7); 
      i ++;  
    } 
3

結果セットの値をストリングの配列に割り当てて、リストに追加できます。

例:

ResultSet set = state.executeQuery("SELECT * FROM numberLotto"); 
List<String[]> lottoList = new LinkedList<String[]>(); 
while(set.next()) 
{ 
    String[] currentRow = new String[] {set.getString(1), 
             set.getString(2), 
             set.getString(3), 
             set.getString(4), 
             set.getString(5), 
             set.getString(6), 
             set.getString(7)}; 
    lottoList.add(currentRow); 
} 
// do whatever you like with lottoList 

あなたはその後、lottoListをループとがあるどのように多くの当選番号をチェックすることができます。

2
 List<int[]> list = new ArrayList<int[]>(); 
     while (set.next()) { 
      int[] array = new int[7]; 
      for (int i = 1; i <= 7; i++) { 
       array[i - 1] = set.getInt(i); 
      } 

      list.add(array); 
     } 
1

これは一例であり、あなたのコードのスタイルに

String[] a = {"10 20 30 40 50","100 200 300 400 500","1000 2000 3000 4000"}; 
      String[][] b = new String[a.length][]; 
      for(int i = 0; i<a.length; i++){ 
       b[i] = a[i].split(" "); 
      } 
1
ResultSet set = state.executeQuery("SELECT * FROM numberLotto"); 
List<String[]> tmp = new ArrayList<String[]>(); 
while(set.next()) 
{ 
    String[] row = new String[7]; 
    row [0] = set.getString(1);     
    row [1] = set.getString(2); 
    row [2] = set.getString(3); 
    row [3] = set.getString(4); 
    row [4] = set.getString(5); 
    row [5] = set.getString(6); 
    row [6] = set.getString(7); 
    tmp.add(row); 
} 
String[][] listOfNumbers = tmp.toArray(new String[tmp.size()][7]); 
関連する問題