string - 无法访问字符串值

标签 string scala collections scala-collections

为什么无法访问字符串值?

我希望 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/

相关文章:

json - 如何根据条件过滤JSON数组结果?

java - 使用 Collections.synchronizedSet 的每个语法

java - ConcurrentNavigableMap 与 NavigableMap 的差异

python - Python 中字符串中的字符

python - 如果数字长度为 5 位或更长,则在 python 中中断字符串

scala - 如何保存带引号的所有字段的 CSV?

java - ArrayList 对 String、int 进行排序

c - C 中比较字符串的问题

javascript - 用逗号和空格连接两个字符串

scala - 计算两个 Seq 列与第三列之间的相关性的正确方法