2013-08-17 50 views
0

這裏數組值是迭代使用Iterator並逐一打印。Scala數組迭代未格式化輸出

或[我語言不好]

我想通過一個使用迭代

package com.aitrich.collection 

object IteratorDemo { 
def main(args: Array[String]) { 

     var myList = Array("a", "number", "of", "words") 

     var l=myList.length 

     for(i <- 0 to l){ 
     var Lst:String=myList.toString() 
     val it = Iterator(l.formatted(Lst)) 
     while (it.hasNext){ 
     println(it.next()) 
     } 
     } 

    } 
} 

打印數組值之一,但輸出顯示

[Ljava.lang.String;@aad33f6 
[Ljava.lang.String;@aad33f6 
[Ljava.lang.String;@aad33f6 
[Ljava.lang.String;@aad33f6 
[Ljava.lang.String;@aad33f6 
+2

'myList中的foreach println' –

回答

4

在Scala中它更避免使用索引來處理收藏:

val myList = Array("a", "number", "of", "words") 
myList.foreach(s => println(s)) 

請注意,Iterator(a)創建一個迭代器,其中包含一個元素a

如果你想用元素的索引前綴:

myList.zipWithIndex.foreach{ case (s, i) => println(s"$i: $s")} 

// 0: a 
// 1: number 
// 2: of 
// 3: words 
+1

日Thnx ..很多..。 –

+2

@Mila,順便說一句,我正在看你的另一個問題,你好像在處理數組時遇到困難。當你看到類似'[Ljava.lang.String; @ aad33f6'的東西,這意味着你正在打印一個數組,而不是它的元素。數組索引爲0,並訪問數組myList的第一個元素,您可以執行'myList(0)'。要訪問第i個元素,'myList(i)'。 – huynhjl