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)
}
}
我认为有更好的方法可以解决这个问题,但 我真正想要学习的是如何处理这种数据类型问题 ,所以请帮我解决这个问题然后我会稍后重构。谢谢。
答案 0 :(得分:1)
multipart/form-data
正是JVM上[C@<whatever>
转换为Array[Char]
的方式。从String
删除对toCharArray
的来电,它会打印出您想要的字符串。问题中当前代码的第二个错误是等式检查:数组上的println
检查它们是相同的对象,并且因为==
将始终创建一个新数组,左侧和右侧总是不同的对象,即使它们具有相同的元素。