2017-12-12 18 views
0

返される配列のすべてを取得しようとしていますが、 returnはループを壊し、printlnなどの使用は許可されません。その配列はWebサイトから呼び出された配列の内部にあります。最初の要素だけが出力され、ループが壊れます。すべてのヘルプはgroovyのループから返す

def String citylist(String[][]data){         
String result = null; 
    for(int i = 0; i < data.length; i++){      
     result = data[i][0]; 
     return result;        
    }   
} 
+1

はあなたが何をしようとして再び説明できますでしょうか?投稿したコードは最初の配列の最初の要素を返します。また、メソッド定義に 'def'も必要ありません。また、変数 'result'は必要ありません。代わりに' data [i] [0] 'を返すだけです。あなたはまた、セミコロン ';を必要としません'; –

+0

申し訳ありませんが、私はJOptionpaneを介して関数を呼び出しているので、私は関数を使用する必要があるので、defを使用する必要があります。私が知っているのは、実行時に各配列の最初の要素が必要なときです。また、セミコロンは私がすぐにJavaに移るので、申し訳ありませんが、私はちょっと混乱しています。理想的には、各要素を独自の行に戻す必要があります。 –

+0

あなたは 'def'を使用する必要はありません... _"私は関数を使わなければなりません "_意味がありません...あなたにはメソッドがありますか? 'def'がなければそれはまだ方法です –

答えて

0

すべての配列の最初の要素を取得するには、これはあなたが何をする必要があるかです:

String[] citylist(String[][] data) { 
    String[] result = new String[data.length] 
    for (int i = 0; i < data.length; i++) { 
     result[i] = data[i][0] 
    } 
    return result 
} 

私たち確認されませんでしたあなたのメソッドシグネチャが正しいかどうかはわからないので、arrayStringに戻すように変更しました。あなたがListを使用することができればと思います

String citylist(String[][] data) { 
    String[] result = new String[data.length] 
    for (int i = 0; i < data.length; i++) { 
     result[i] = data[i][0] 
    } 
    return result.toString() 
} 

同じことを:あなたはStringをしたい場合しかし、あなたは行うことができます

def citylist(String[][] data) { 
    def result = [] 
    for (int i = 0; i < data.length; i++) { 
     result << data[i][0] 
    } 
    return result 
} 

そしてあなたも、いくつかの素晴らしいGroovyの機能を使用することができます。

def citylist(String[][] data) { 
    def result = [] 
    data.each { 
     result << it[0] 
    } 
    return result 
} 

上記のコードの場合、結果は[1, 11, 21]

私はあなたの最後のコメントを理解していれば、これを行うための別の方法である:

String[][] citylist(String[][] data) { 
    String[][] result = new String[data.length][] 
    for (int i = 0; i < data.length; i++) { 
     result[i] = new String[1] 
     result[i][0] = data[i][0] 
    } 
    return result 
} 

あなたの結果は[[1], [11], [21]]

+0

あなたは "他の答えが関数を使用するので、あなたが別の何かを必要とするかどうか私に知らせてください;) –

+0

それは動作しますが、それを[0,1,2 .. ...]列に1行に1つずつ? –

+0

2次元配列を保つことを意味するなら、私は自分の応答を編集しました。 –

1

を高く評価し、私はそのような場合、あなたが行うことができます

...それは質問から伝えるのは難しいです...あなたはすべての配列の最初の要素をしたい推測するつもりです。

List<String> citylist(String[][]data){         
    data.collect { it[0] } 
} 
+0

はい、申し訳ありませんが、私は意味したことですが、それは機能にある必要があります、助けてくれてありがとう –

+3

それは機能です...あなたが何をしているのか分かりません –

関連する問題