为什么无法访问String值?
我希望s1是“ a”,而不是它的Ljava.lang.String; @ d70d7a吗?
val it = Iterator("(a,((a,b),1.0))") //> it : Iterator[String] = non-empty iterator
val s1 = it.next.replace("(" , "").replace(")" , "").split(",").toString.split(",")
//> s1 : Array[String] = Array([Ljava.lang.String;@d70d7a)
println("s1 is "+s1(0)) //> s1 is [Ljava.lang.String;@d70d7a
最佳答案
让我们逐个命令:
val it = Iterator("(a,((a,b),1.0))")
// here we got iterator on one String
val s1 = it.next // "(a,((a,b),1.0))"
.replace("(" , "") // "a,a,b),1.0))"
.replace(")" , "") // "a,a,b,1.0"
.split(",") // multiple lines in array: "a", "a","b","1.0"
.toString // Array[String].toString returns what you got: Ljava.lang.String;@d70d7a
.split(",") // one String (because there's no "," signs)
也许您应该在
toList
之前运行toString
,因为toString
的定义方式与您期望在List
的此实现中定义的方式相同:val s1 = ...
.split(",")
.toList
.toString
...
也许您应该查看Java: split() returns [Ljava.lang.String;@186d4c1], why?进行澄清。
关于string - 无法访问字符串值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24956683/