首页 > 解决方案 > 如何在 Scala 中使用字符串值匹配?

问题描述

我正在尝试迭代字符串值以更改它的每次出现。例如,我希望“1”变成“一”,“2”变成“二”,等等。

我已经这样做了:

  override def toString = {  
    val mapXX = init.map(_.clone);  
    var returnVALUE = mapXX.map(_.mkString).mkString("\n")

    for(c <- returnVALUE){
        c match {
          case 1 => "one";
          case 2 => "two";
          ...
          case _ => "";
        }
    }
    returnVALUE
  }  
} 

它并没有改变我的列表,我的列表显示相同。什么也没有变。

有人知道我们如何迭代 String 值的每个字符以便用其他字符替换每个字符吗?

谢谢

标签: stringscaladictionarydesign-patternsmatch

解决方案


目前还不完全清楚你在做什么。尝试

returnVALUE.map {
  case '1' => "one"
  case '2' => "two"
  case '3' => "three"
  // ...
  case _   => " "
}.mkString

这应该是toString.

String#map接受一个函数 from Charto something(例如 to String)。

如果returnVALUE是,"1 2 3"那么这将产生"one two three".

当最后一行是returnVALUE这意味着您返回原始值returnVALUE,而不是修改后的值。


推荐阅读