• scala -- 字符串


    字符串

    "Hello World".getClass // 获取类  class java.lang.String
    "Hello World".getClass.getName //获取类名  java.lang.String
    66.getClass //int
    66.getClass.getName //int
    

    scala 的String 就是Java 的String 类。所以,它可以直接调用 Java 中String 的所有方法。如计算长度length ,是否以xx开头startsWith ,以xx结尾endsWith 包含contains拼接 + 替换等等常用的字符串方法。

    同时也可以把String 当作字符序列来对待。进行 foreachfilter ,map 等方法

    虽然String在Java中被声明为了final ,但是依旧可以通过 隐式转换 给String 添加自定义方法。

    字符串中的变量代换

    字符串代换类似于 其他语言的 %s 只是scala 提供四种已定义的:s,f,raw ,format格式

    s

       val name = "xiaoming"
       val sex = "boy"
       val age = 18
       val run = 100
       val aen = s"$name is ${age} old" //xiaoming is 18 old  如果只是简单的代入,那么可以省略{}
       val ben = s"xiaoming run ${run+100} km" //xiaoming run 200 km //did xiaoming run 100 km right? true  数字和数字相加
       val cen = s"did xiaoming run 100 km right? ${run == 100 } "
       val den = s"xiaoming ${age+"100"}? no" //xiaoming 18100? no 注意这里的数字和字符串相加
       
       class Person(val name:String,val age:Int)
       val lihong = new Person("lihong",33)
       val fen = s"${lihong.name} is a ${lihong.age} old woman"  // 使用对象变量
       val gen = s"$lihong.name is a $lihong.age old woman" //省略{}那么就不会计算而是直接打印Test$Person$1@1888ff2c.name is a Test$Person$1@1888ff2c.age old woman  
    

    f 用于数字字符串插值

     val a = 10
     val aen = f"$a%.2f bigger then $a?" //10.00 bigger then 10?
    

    raw 是原生字符串,也就是说 不对 字符串进行转义。和""" """ 效果类似

     val men = raw"hello 
     xiaoming"
     val nen ="""hello 
     xiaohong"""
    

    format 和python 中的format差不多,但是占位符由{} 变成了% ,因此感觉更是format 和% 模式的结合体

        val name = "xiaoqing"
        val age = 1000
        val oen = "%s is %d years old".format(name,age)//xiaoqing is 1000 years old
        
        printf("%s is %d years old",name,age) //printf 的用法  
    
    正则表达式

    scala的正则表达式有两种写法,但都殊途同归,生成一个正则匹配对象。

    1. 通过 字符串.r 的方式生成一个正则匹配对象
       val pat = "\d+".r
      
       val sen = "I am 20 years old,i hava 5 yuan"
       val mat = pat.findFirstIn(sen) // 只找第一个 Some(20)
       val matt = pat.findAllIn(sen) // 查找所有,返回的是 一个迭代器。
    
    1. 通过引入Regex 生成一个正则匹配对象
     import scala.util.matching.Regex
        val pat = new Regex("\d+")//  注意这里 是  \ 两个反斜杠
        val sen = "I am 20 years old,i hava 5 yuan"
        val mat = pat.findFirstIn(sen)
        val matt = pat.findAllIn(sen)
    
  • 相关阅读:
    hdu5289 RMQ+二分
    poj1459 最大流Dinic
    poj2391 最大流+拆点
    poj1087&&hdu1526 最大流
    NOI2004 郁闷的出纳员
    Treap入门(转自NOCOW)
    poj 2892
    vijos 1512
    对拍程序
    poj 3264
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/7253999.html
Copyright © 2020-2023  润新知