potatoknight

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

创建map,并向map添加元素

val idMap = Map(
      "group_id" -> "GID",
      "sim_id" -> "SIM_ID",
      "list_sim_id" -> "LIST_SIM_ID"
    )
idMap += (
"foo" -> "bar")

 

关键字Option, Some, None

https://blog.csdn.net/JasonDing1354/article/details/46788787

  def option_some_test(){
    val none_maps = None
    val res = none_maps.getOrElse("jack", "XXXXXXXXXXXX")
    println(res, res.getClass()) // res 是一个tuple,(jack, XXXXXXXXXXXX), 返回 ((jack,XXXXXXXXXXXX),class scala.Tuple2)
    
    var maps = Map("jack"->"A", "tom"->"B", "rose"->"C")
    println(maps.get("xxx"))                // 返回None
    println(maps.get("jack").get)           // 返回"A"
    println(maps.get("jack"))               // 返回 Some(A)
    println(maps.get("jack") == "A")        // 返回 false
    println(maps.get("jack") == Some("A"))  // 返回 true
    maps += ("bob" -> "bbbbbbbbbbbbbb")     // 添加元素,返回  Map(jack -> A, tom -> B, rose -> C, bob -> bbbbbbbbbbbbbb)
    print(maps)

    val param:Option[Map[String, String]] = Some(maps)
    println(param.get.get("xxx"))       // 先把map拿出来,再get("xxx")就会返回None
    println(param.get.get("jack").get)  // 返回 "A"
    println(param.get.get("jack"))      // 返回 Some(A)
    println(param.get("jack"))          // 注意,直接返回"A"
    println(param.get("xxx"))           // 直接用Some(maps).get("xxx")会抛异常 java.util.NoSuchElementException: key not found: xxx
  }

 

scala 中 Seq 和 List 的区别

在Java术语中,Scala的Seq将是Java的List,Scala的List将是Java的LinkedList。

 

查找字符串

str.indexOf(substr) >= 0;

 

list 添加元素

scala> val p1 = List("Kim")
p1: List[String] = List(Kim)

scala> val p2 = "Julia" :: p1
p2: List[String] = List(Julia, Kim)

scala> val p3 = "Judi" :: p2
p3: List[String] = List(Judi, Julia, Kim)

 

 

 

 

创建的工程无法添加scala class文件解决方法
具体问题的图,如下:

没有出现class

打开设置界面的路径如下: 主界面File——>Project Structure——>modules 
这里写图片描述

如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会。 

    • Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
    • Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
    • Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
    • Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
    • Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能

 

 

 

idea 新建scala object,运行hello world 报“找不到或无法加载主类”

需要将Project structure -> modules -> 右边的Dependencies的sbt: org.scala-lang:scala-library:2.12.8:jar勾选上

 

 

添加scalatest sbt依赖

在看scala 课程的时候添加了一下依赖:

libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"

但是报错“module not found: org.scalatest#scalatest_2.12;2.2.6”,这个模块已经找不到了,然后搜了scalatest sbt 找到了这个网站http://www.scalatest.org/user_guide/using_scalatest_with_sbt

然后添加了下面的依赖就好了:

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"

 

 

年月日转换成时间戳

import java.text.SimpleDateFormat
def tranTimeToLong(tm:String) :Long={ val fm = new SimpleDateFormat("yyyyMMdd") val dt = fm.parse(tm) val aa = fm.format(dt) val tim: Long = dt.getTime() tim }

 

sleep

Thread.sleep(1000) // wait for 1000 millisecond


循环tupole
val a = Map(("cn", "default") ->(("GID", "FEED", "0"),("GID", "CHANNEL", "3431225546")))
val checktypes = a(("cn", "default"))
for ((idtype, imprtype, channelid) <- checktypes.productIterator) {
    println(idtype, imprtype, channelid)
}

 

去掉字符串内的所有空白

input.replaceAll("\\s", "")

 

存文件

import java.io._
val pw = new PrintWriter(new File("hello.txt" ))
pw.write("Hello, world")
pw.close

 

字符串格式化

"This is %s string".format(1)

 

scala long 转换成 java long

import scala.collection.JavaConverters._

val l = List(1L,2L,3L,4L)

l.map(java.lang.Long.valueOf).asJava
// or 
l.map(_.asInstanceOf[AnyRef]).asJava
// or
l.map(Long.box).asJava

 

immutable Map 转换成 mutable Map 或 简单的Map

val m = collection.immutable.Map(1->"one",2->"Two")
val n = collection.mutable.Map(m.toSeq: _*)

val n = Map(m.toSeq: _*)

 

class 的继承

https://blog.csdn.net/gongxifacai_believe/article/details/81948007

 

scala 集合操作

https://blog.chaofan.io/archives/scala%E5%AD%A6%E4%B9%A0%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89-%E9%9B%86%E5%90%88%E7%B1%BB%E5%9E%8B

posted on 2019-01-18 11:08  potatoknight  阅读(188)  评论(0编辑  收藏  举报