首页
学习
活动
专区
圈层
工具
发布

查看
EN

Stack Overflow用户
提问于 2013-07-10 12:04:26
回答 1查看 540关注 0票数 0

我正在尝试比较两个Seq字符串,这是我使用Apache和Play获得的!Scala的框架。几天后我就没有主意了。以下是开始:

@(比较:SeqCompare,compares1:SeqCompare,compareForm: Form(String,String))(隐式请求:RequestAny) @import helper._ @main(“管理工具”,request.uri){

我有两个插曲--怎么比较?

代码语言:javascript
复制
@for(compare <- compares) {
    <td>@for(group <- compare.memberOf) {
        <li style="list-style-type: none;">@group.replaceAll(",(.*)","").replaceAll("(.*)=","")</li>
    }</td>
}
@for(compare1 <- compares1) {
    <td>@for(group1 <- compare1.memberOf) {
        <li style="list-style-type: none;">@group1.replaceAll(",(.*)","").replaceAll("(.*)=","")</li>
    }</td>
}   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 22:22:47

我知道这可能是一个迟来的答案,但当时我设法解决了这个问题。代码可能有点脏,但我希望它能派上用场。

模型部分:

代码语言:javascript
复制
def intersection(c1:Seq[String], c2:Seq[String]): Seq[String] = {
    (Set(c1: _*) & Set(c2: _*)).toSeq
}

控制器部分:

代码语言:javascript
复制
compareForm.bindFromRequest.fold(
hasErrors = {errors => BadRequest(views.html.compares.index(compareForm, username, User.find(username)))},
success = { ldapName => 
  val leftUser = Compare.findAll(ldapName._1)
  val rightUser = Compare.findAll(ldapName._2)
  val intersection = Compare.intersection(leftUser.memberOf,rightUser.memberOf) 
  val rightLacking: Seq[String] = (leftUser.memberOf.toSet -- intersection.toSet).toList.map(_.toString).sorted      
  val leftLacking: Seq[String] = (rightUser.memberOf.toSet -- intersection.toSet).toList.map(_.toString).sorted
  val bothOk: Seq[String] = (intersection.toSet).toList.sorted
  Ok(views.html.compares.list(leftUser, rightUser, rightLacking, leftLacking, bothOk, compareForm, username, User.find(username)))
}  )

致以问候!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17570213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档