scala中的正则匹配和模式匹配

模式匹配:match case使用,这里其实使用了提取器



package kang
 
class Apple
case class RedApple(name:String, size:Int) extends Apple
case class GreenApple(name:String, size:Int) extends Apple

object Scala_PatternMatch {
	def main(args: Array[String]): Unit = {
			getSalary("java",4)
			getParameterType(0.2)
			getMatchCollection(Array("java"))
			getAppleColor(RedApple("hong_1",4))
			getAppleColor(GreenApple("lv_1",2))
			getValue("java",Map("java"->"popular","scala"->"hot","hadoop"->"welcome"))
	
			println("--")
			//正则匹配
			val pattern="[a-z]+"//加号是一个或多个,星号是零个或多个
			val content="Hello! My Princess!"
			println(pattern.matches(content))
			val pattern2="[a-z]+".r
			println(pattern2.findFirstIn(content))
			println(pattern2.findAllIn(content))
			println(pattern2.replaceFirstIn(content,"KANG"))
			println(pattern2.replaceAllIn(content,"KANG"))
	}


	def getSalary(name: String, age: Int){
		name match{
		case "java" => println("120000")
		case "scala" => println("150000")
		case "spark" => println("110000")
		case "hadoop" => println("140000")
		case _ if(age<6) => println("unknowed")
		case _name if(age<6) => println("name: "+_name+" salary: 134000")
		case _ => println("unknowed ")
		}
	}


	def getParameterType(msg: Any){
		msg match{
		case a:Int => println("Integer")
		case b:String => println("String")
		case c:Array[Int] => println("Array[Int]")
		case d:Double => println("Double")
		case _ => println("unknowed type")

		}
	}

	def getMatchCollection(array: Array[String]){
		array match{
		case Array("java") => println("one")
		case Array("java","scala") => println("two")
		case Array("java","scala","spark") => println("three")
		case Array("java", _*) => println("many")
		case _ => println("unknowed collection")

		}
	}


	def getAppleColor(apple: Apple){
		apple match{
		case RedApple(name, size) => println("RedApple-name: "+name +" size:"+size)
		case GreenApple(name, size) => println("GreenApple-name: "+name +" size:"+size)
		case _ => println("unknowed apple")
		}
	}

	def getValue(key:String,content:Map[String,String]){
		content.get(key) match{
  		case Some(value) => println("value: "+value)
  		case _ => println("unknowed key")

		}

	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值