当前位置:网站首页>Scala学习:breakable
Scala学习:breakable
2022-07-30 18:45:00 【我爱夜来香A】
一、案例分析
//字符串匹配的BF算法
package Match
import scala.util.control.Breaks._
class BF {
def bfmatch(main:Array[Char],sub:Array[Char]): Int ={
require(main != null, "main array required")
require(sub != null, "sub array required")
require(main.length >= sub.length, "sub array should be small than main array")
var result = -1
breakable{
for (i <- 0 to (main.length - sub.length)){
//slice字符串截取,左闭右开,[0,2)
if (main.slice(i,i + sub.length) sameElements sub){
result = i
break
}
}
}
result
}
}
object test{
def main(args:Array[String]): Unit ={
val bf = new BF
var str1 = "heldfsfslo".toCharArray
var str2 = "lo".toCharArray
println(bf.bfmatch(str1,str2))
}
}
二、breakable用法
- scala没有提供Java中类似的break和continue操作,可以用其它方式实现
- 首先需要导入scala.util.control.Break._这个包,其次将需要控制的结构放入breakable{}代码块中,如上述所示就为break用法
for (i <- 0 to (main.length - sub.length)){
breakable{
if (main.slice(i,i + sub.length) sameElements sub){
result = i
break
}
}
}
如上述所示,若breakable{}在for循环中,就为continue用法
边栏推荐
- Quickly build an e-commerce platform based on Amazon cloud technology serverless service - performance
- while,do while,for循环语句
- OSPF详解(4)
- Go 系统收集
- 【剑指 Offer】剑指 Offer 22. 链表中倒数第k个节点
- NC | 西湖大学陶亮组-TMPRSS2“助攻”病毒感染并介导索氏梭菌出血毒素的宿主入侵...
- [Summary] 1396- 60+ VSCode plugins to create a useful editor
- OSPF详解(3)
- MySql中@符号的使用
- nlohmann json 使用指南【visual studio 2022】
猜你喜欢
【Prometheus】Prometheus联邦的一次优化记录[续]
(2022杭电多校四)1001-Link with Bracket Sequence II(区间动态规划)
【总结】1396- 60+个 VSCode 插件,打造好用的编辑器
博纳影通过IPO注册:阿里腾讯是股东 受疫情冲击明显
深化校企合作 搭建技术技能人才成长“立交桥”
Recommended Books | Recommend 3 database books with rave reviews
网络基础(三)01-网络的基础概念——URL地址组成之协议、主机地址、路径和参数&127.0.0.1本地回环地址& 查看网址IP地址并访问之ping空格+网址&netstat -anb查看本机占用端口
CIMC Shilian Dafeitong is the global industrial artificial intelligence AI leader, the world's top AI core technology, high generalization, high robustness, sparse sample continuous learning, industri
Does the satellite phone communicate directly with the satellite or through a ground station?
【每日一道LeetCode】——191. 位1的个数
随机推荐
WeChat Mini Program Cloud Development | Urban Information Management
终端分屏工具Terminalx的使用
网络基础(三)01-网络的基础概念——URL地址组成之协议、主机地址、路径和参数&127.0.0.1本地回环地址& 查看网址IP地址并访问之ping空格+网址&netstat -anb查看本机占用端口
第4章 控制执行流程
node封装一个控制台进度条插件
深化校企合作 搭建技术技能人才成长“立交桥”
Codeblocks + Widgets create window code analysis
WEBSOCKETPP使用简介+demo
【Prometheus】Prometheus联邦的一次优化记录[续]
Graphic LeetCode -- 11. Containers of most water (difficulty: medium)
scrapy基本使用
[Use of Qt Designer tool]
ROS 环境使用第三方动态链接库(.so)文件
猎豹移动终于递交年报:年营收7.85亿 腾讯持股16.6%
Critical Reviews | A review of the global distribution of antibiotics and resistance genes in farmland soil by Nannong Zou Jianwen's group
AWS console
Anaconda Navigator卡在loading applications
【剑指 Offe】剑指 Offer 18. 删除链表的节点
[OC study notes] attribute keyword
ESP8266-Arduino programming example-HC-SR04 ultrasonic sensor driver