Scala字符串和字符类型

时间:2016-03-28 16:29:01

标签: scala types

val args = "To now was far back saw the *$# giant planet itself, het a won"

查找并排序来自" args"

的不同字谜对
now won

was saw 

the het

首先,我清理args并将它们放在一个数组中。

val argsArray = args.replaceAll("[^a-zA-Z0-9\\s]", "").toLowerCase.split(" ").distinct.sorted 
argsArray: Array[String] = Array("", a, back, far, giant, het, itself, now, planet, saw, the, to, was, won)

我的想法是将每个单词减少为char数组,然后排序,然后进行比较。但我卡住了,因为以下内容返回错误的数据类型---- String = [C @ 2736f24a

for (i <- 0 until argsArray.length - 1){
    val j = i + 1
    if(argsArray(i).toCharArray.sorted == argsArray(j).toCharArray.sorted) {
      println(argsArray(i).toCharArray + " " + argsArray(j).toCharArray)
    }
}

我认为有更好的方法可以解决这个问题,但 我真正想要学习的是如何处理这种数据类型问题 ,所以请帮我解决这个问题然后我会稍后重构。谢谢。

1 个答案:

答案 0 :(得分:1)

multipart/form-data正是JVM上[C@<whatever>转换为Array[Char]的方式。从String删除对toCharArray的来电,它会打印出您想要的字符串。问题中当前代码的第二个错误是等式检查:数组上的println检查它们是相同的对象,并且因为==将始终创建一个新数组,左侧和右侧总是不同的对象,即使它们具有相同的元素。