0

ドキュメントによると、この形式でオブジェクトのプロパティを参照でき<object.property>ます。これで文字列の長さをチェックできると思っていましたが、うまくいかないようです。メソッドがString.length()_ _ _ _ Scala REPL のこのクイックチェックで確認しました:<mystr.length>getLength()lengthlength()

scala> import org.stringtemplate.v4._; import scala.collection.JavaConverters._;
import org.stringtemplate.v4._
import scala.collection.JavaConverters._

scala> new ST("<xs:{ x | <x>:<x.length> }>").add("xs", List("hello", "goodbye").asJava).render
res0: String = "hello: goodbye: "

scala> case class S(val s:String) { def getLength = s.length }
defined class S

scala> new ST("<xs:{ x | <x>:<x.length> }>").add("xs", List("hello", "goodbye").map(S).asJava).render
res1: String = "S(hello):5 S(goodbye):7 "

したがって、文字列にgetLength()メソッドまたはlengthフィールドがあれば、それは機能します...

文字列の長さを取得する簡単な方法はありますか? たぶん、組み込みの StringTemplate 関数、または私が知らない他のメソッドですか?

4

1 に答える 1

0

関数のチートシートのリストで答えを見つけました:strlen

scala> new ST("<xs:{ x | <x>:<strlen(x)> }>").add("xs", List("hello", "goodbye").asJava).render
res6: String = "hello:5 goodbye:7 "
于 2013-03-08T21:45:41.717 に答える