用什么手机软件做网站,河南做网站公司报价,网站需要多大的空间,网站八个4. 正则表达式
4.1 概述
所谓的正则表达式指的是正确的,符合特定规则的式子, 它是一门独立的语言, 并且能被兼容到绝大多数的编程语言中。在scala中, 可以很方便地使用正则表达式来匹配数据。具体如下:
Scala中提供了Regex类来定义正则表达式.要构造一个Regex对象#xff0…4. 正则表达式
4.1 概述
所谓的正则表达式指的是正确的,符合特定规则的式子, 它是一门独立的语言, 并且能被兼容到绝大多数的编程语言中。在scala中, 可以很方便地使用正则表达式来匹配数据。具体如下:
Scala中提供了Regex类来定义正则表达式.要构造一个Regex对象直接使用String类的r方法即可.建议使用三个双引号来表示正则表达式不然就得对正则中的反斜杠进行转义.
4.2 格式
val 正则对象名具体的正则表达式.r注意: 使用findAllMatchIn方法可以获取到所有正则匹配到的数据(字符串).
4.3 示例一: 校验邮箱是否合法
需求
定义一个字符串, 表示邮箱.定义一个正则表达式来匹配邮箱是否合法.合法邮箱测试qq12344163.com不合法邮箱测试qq12344.com打印结果.
参考代码
//案例:校验邮箱是否合法.
object ClassDemo13{def main(args:Array[String]):Unit{//需求:定义一个正则表达式来匹配邮箱是否合法//1.定义一个字符串,表示邮箱.val emailqq12344163.com//2.定义一个正则表达式,用来校验邮箱./*.表示任意字符数量词,表示前边的字符出现至少1次,至多无所谓.表示必须是符号,无特殊含义.\.因为.在正则中有特殊的含义,所以要转移一下,使它变成普通的. */val regex..\...r//3.打印结果.if(regex.findAllMatchIn(email).size!0){//合法邮箱println(s${email}是一个合法的邮箱!)}else{println(s${email}是一个非法的邮箱!)}}
}4.4 示例二:过滤所有不合法邮箱
需求
找出以下列表中的所有不合法的邮箱.“38123845qq.com”, “a1da88123fgmail.com”, “zhansan163.com”, “123afadff.com”
参考代码
//案例:过滤所有不合法的邮箱.
object ClassDemo14{def main(args:Array[String]):Unit{//1.定义列表,记录邮箱.
val emlListList(38123845qq.com,a1da88123fgmail.com,zhansan163.com,123afadff.com)//2.定义正则表达式.valregex..\...r//3.通过过滤器获取所有的不合法的邮箱.val listemlList.filter(xregex.findAllMatchIn(x).size0) //4.打印结果.println(list)}
}4.5 示例三:获取邮箱运营商
需求
定义列表, 记录以下邮箱:
38123845qq.com,a1da88123fgmail.com,zhansan163.com,123afadff.com使用正则表达式进行模式匹配匹配出来邮箱运营商的名字。
例如
邮箱zhansan163.com需要将163(运营商的名字)
匹配出来.提示:
1. 使用括号来匹配分组.
2. 打印匹配到的邮箱以及运营商.参考代码
//案例:获取邮箱运营商.
object ClassDemo15{def main(args:Array[String]):Unit{//1.定义列表,记录邮箱.val emlListList(38123845qq.com,a1da88123fgmail.com,zhansan163.com,123afadff.com)//2.定义正则表达式.val regex.(.)\...r//3.根据模式匹配匹配出所有合法的邮箱及其对应的运营商.val resultemlList.map{//email就是emlList这个列表中的每一个元素.//company表示:正则表达式中你用()括起来的内容,也就是分组的数据. caseemailregex(company)email-s${company}case emailemail-未匹配}//4.打印结果println(result)}
}5. 异常处理
5.1 概述
来看看下面这一段代码:
def main(args: Array[String]): Unit {
val i 10 / 0
println(你好)
}
Exception in thread main java.lang.ArithmeticException: / by zero
at ForDemo$.main(ForDemo.scala:3)
at ForDemo.main(ForDemo.scala)执行程序可以看到scala抛出了异常而且没有打印出来你好! 。说明程序出现错误后就终止了。 那怎么解决该问题呢 在Scala中可以使用异常处理来解决这个问题. 而异常处理又分为两种方式:
方式一: 捕获异常.
注意: 该方式处理完异常后, 程序会继续执行.
方式二: 抛出异常.
注意: 该方式处理完异常后, 程序会终止执行.
5.2 捕获异常
格式
try {
//可能会出现问题的代码
}
catch{
case ex:异常类型1 //代码
case ex:异常类型2 //代码
}
finally {
//代码
}**解释: **
try中的代码是我们编写的业务处理代码.在catch中表示当出现某个异常时需要执行的代码.在finally中写的是不管是否出现异常都会执行的代码.
5.3 抛出异常
我们也可以在一个方法中抛出异常。格式如下:
格式
throw new Exception(这里写异常的描述信息)5.4 示例
需求
通过try.catch来处理 除数为零异常.在main方法中抛出一个异常.
参考代码
//案例: 演示异常处理.
object ClassDemo16 {
def main(args: Array[String]): Unit {
//1. 通过try.catch来处理 除数为零异常.
try {
//可能出问题的代码
val i 10 / 0
} catch {
//出现问题后的解决方案.
//case ex:Exception println(代码出问题了!)
case ex:Exception ex.printStackTrace()
}
println(你好)
println(- * 15) //我是分割线.
//2. 抛出一个异常对象.
throw new Exception(我是一个Bug!)
println(Hello, Scala!) //这行代码并不会被执行.
}
}