String Scala:检测字符串中的西里尔和拉丁字符?
请使用简单的Scala方法提供帮助,该方法允许:String Scala:检测字符串中的西里尔和拉丁字符?,string,scala,String,Scala,请使用简单的Scala方法提供帮助,该方法允许: 检测字符串是否至少包含一个拉丁字符 检测是否所有字符串都是拉丁字符 检测字符串是否至少包含一个西里尔字符 检测是否所有字符串都是西里尔字母 到目前为止,我试过: scala> val pattern = new Regex("[a-zA-Z]") pattern: scala.util.matching.Regex = [a-zA-Z] scala> val s = "john" s: String = john scala>
scala> val pattern = new Regex("[a-zA-Z]")
pattern: scala.util.matching.Regex = [a-zA-Z]
scala> val s = "john"
s: String = john
scala> pattern findFirstIn s
res22: Option[String] = Some(j)
谢谢 给你
1。一个拉丁字符
scala> ("[A-Za-z]".r findFirstIn "Munich").isDefined
res22: Boolean = true
scala> "Munich".toList.forall(c => ( c >= 'A' && c<= 'Z') || (c >= 'a' && c <= 'z') )
res27: Boolean = true
2。所有拉丁字符
scala> ("[A-Za-z]".r findFirstIn "Munich").isDefined
res22: Boolean = true
scala> "Munich".toList.forall(c => ( c >= 'A' && c<= 'Z') || (c >= 'a' && c <= 'z') )
res27: Boolean = true
4。所有字符都是西里尔语:
("\\p{IsCyrillic}".r findFirstIn "Москва").isDefined
res5: Boolean = true
val moscow = "Москва"
"\\p{IsCyrillic}*".r.findFirstIn(moscow).map(_.size) == Some(moscow.size)
res21: Boolean = true
你能至少展示一下到目前为止你已经尝试了什么吗?请看我的问题更新你对“拉丁语”的定义是什么?A-Za-z似乎在4)中受限
findFirstIn
只查找一个字符,大小始终为1。否。试试代码,4有点不同。有一个Kleene星“*”。很抱歉,我不会说使用西里尔字母的语言,但西里尔字母似乎测试西里尔字母(西里尔字母块中的任何字符),而拉丁字母测试测试拉丁字母(不包括拉丁字母块中的其他非字母字符)。因此,测试是不对称的?