当前位置:网站首页>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用法
边栏推荐
- 积性函数
- Pytorch基础--tensorboard使用(一)
- The Meta metaverse division lost 2.8 billion in the second quarter!Still want to keep betting?Metaverse development has yet to see a way out!
- 【剑指 Offe】剑指 Offer 18. 删除链表的节点
- node封装一个控制台进度条插件
- Hello, my new name is "Bronze Lock/Tongsuo"
- 尊重客观事实
- Chapter 4 Controlling the Execution Flow
- MySQL data types
- WEBSOCKETPP使用简介+demo
猜你喜欢
ESP8266-Arduino programming example-BMP180 air pressure temperature sensor driver
ESP8266-Arduino编程实例-HC-SR04超声波传感器驱动
6块钱1斤,日本公司为何来中国收烟头?
Pytorch foundation -- tensorboard use (1)
kotlin by lazy
6 yuan per catty, why do Japanese companies come to China to collect cigarette butts?
自然语言处理nltk
智慧中控屏
【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数
Fixed asset visualization intelligent management system
随机推荐
荐号 | 对你有恩的人,不要请吃饭来报答
scrapy基本使用
ESP8266-Arduino编程实例-DS18B20温度传感器驱动
"Ruffian Heng Embedded Bimonthly" Issue 59
arcpy获取要素类(属性表)包含的数目
第14章 类型信息
natural language processing nltk
Scrapy框架介绍
沉浸式体验科大讯飞2022消博会“官方指定产品”
延时队列优化 (2)
Does the satellite phone communicate directly with the satellite or through a ground station?
[Use of Qt Designer tool]
LocalDate时间生成
Recommendation | People who are kind to you, don't repay them by inviting them to eat
微信小程序云开发 | 城市信息管理
经济新闻:错误# 15:初始化libiomp5md。dll,但发现libiomp5md。已经初始化dll。解决方法
Swiper rotates pictures and plays background music
node封装一个控制台进度条插件
基于inquirer封装一个控制台文件选择器
C# wpf borderless window add shadow effect