蓝桥杯lesson3---string的使用
🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
string的概念
string字符串是一种更加高级的封装,string字符串中包含了大量的方法,这些方法使得字符串的操作变得更加简单,string的使用,往往贯穿于整个蓝桥杯生涯中。
C++中将字符串直接作为一种类型,也就是string类型,使用string类型创建的对象就是C++的字符串。
使用C++中提供的string时,必须添加头文件<string>
string s1;string s2 = "abc";
string的常见操作
2.1创建字符串
#define _CRT_SECURE_NO_WARNINGS
#include<string> //添加string头文件
#include<iostream>
using namespace std;
int main()
{string s1;string s2 = "abc";cout << s1 << endl;cout << s2 << endl;return 0;
}
其中s1是空白字符串,s2是创建了abc的字符串。
- s1表示创建了一个空字符串,相当于创建整型int a,但未给a一个初始值。
- string s2表示创建一个字符串s2,它的内容是"hello world",要注意s2中的字符串不再以\0作为结束标志。
除了上面的创建字符串的写法外,还有其他一些创建字符串的方式。
string s("hello world");string s1 = s;//用一个现成的字符串s,初始化为另外一个字符串s1
当然C++中的string创建的字符串和char类型的数组所表示的字符串还有一个区别,string类型的字符串对象可以直接赋值。
#define _CRT_SECURE_NO_WARNINGS
#include<string> //添加string头文件
#include<iostream>
using namespace std;
int main()
{//string s1;//string s2 = "abc";//cout << s1 << endl;//cout << s2 << endl;string s("hello world");string s1 = s;//用一个现成的字符串s,初始化为另外一个字符串s1cout << s1 << endl;return 0;
}
cin的方式
可以直接使用cin给string类型的字符串输入一个字符串的数据。
int main()
{string s;cin >> s;cout << s << endl;return 0;
}
这个其实适用于不带空格的字符串,但如果输入的是带空格的字符串呢,我们来看看。
你看,这样子就不可以了。
那么,我们怎么可以读取空格呢?,解决的办法就是getline
getline
第一种getline函数以换行符("\n")作为字符串的结束标志,它的一般格式为:
getline(cin, string str);
这种形式的getline函数从输入流中读取文本,直到遇到换行符('\n')为止,然后将读取的文本(不包括换行符)存储到指定的string类型的变量str中。
#include<iostream>
#include<string>
using namespace std;
int main()
{string name;getline(cin,name);cout<<name<<endl;return 0;
}
第二种就是getlin函数允许用户自定义结束语法
#include<iostream>
#include<string>
using namespace std;
int main()
{
// string name;
// getline(cin,name);
// cout<<name<<endl;
//
// return 0; string name;getline(cin,name,'q');cout<<name<<endl;return 0;
}
你看,这样子就是以q作为了结束标志。
size()
string中提供了size()函数用于获取字符串长度。
string s;string s1="hello";string s2="hello world";string s3="12ab!= ";cout<<"s:"<<s.size()<<endl;cout<<"s1:"<<s1.size()<<endl; cout<<"s2:"<<s2.size()<<endl;cout<<"s3:"<<s3.size()<<endl;
接下来,我们用这个来遍历整个字符串
string s="abcdef";int i=0;for(i=0;i<s.size();i++){cout<<s[i]<<" ";}
注意string类型的字符串是可以通过下标来进行访问的。
迭代器
迭代器是一种对象,它可以用来遍历容器,迭代器的作用类似于指针,或者数组下标,这就意味着,如果我们想要访问迭代器所指向的值,我们需要解引用。
begin()
begin():返回指向字符串第一个字符的迭代器,需要一个迭代器的变量来接收
end()
end():返回指向字符串最后一个字符的下一个位置的迭代器(该位置不属于字符串)
迭代器是可以进行大小比较的,也可以进行+或者-整数运算的。
同一个容器的两个迭代器也可以相减,相减结果的绝对值,是两个迭代器中间元素的个数
string s="abcdef";string::iterator it1=s.begin();string::iterator it2=s.end();cout<<(it1<it2)<<endl;cout<<abs(it1-it2)<<endl;
正序遍历
string s="abcdef";for(auto it =s.begin();it!=s.end();it++){cout<<*it<<" ";}cout<<endl;for(string::iterator it=s.begin();it!=s.end();it++){cout<<*it<<" ";}
逆序遍历
string s="abcdef";for(auto it =s.end()-1;it!=s.begin()-1;it--){cout<<*it<<" ";}cout<<endl;for(string::iterator it=s.end()-1;it!=s.begin()-1;it--){cout<<*it<<" ";}
使用迭代器找到元素之后,改变迭代器指向的元素,是可以直接改变字符串内容的。
string str="abcdef";cout<<str<<endl;for(auto i=str.begin();i<str.end();i++){*i='X';}cout<<str<<endl;
push_back()
string s;s.push_back('h');s.push_back('e'); s.push_back('l');s.push_back('l');s.push_back('o');cout<<s<<endl;
字符串的+和+=操作
push_back()是用于在字符串后面添加一个字符,然而部分情况下我们需要向原有的字符串后继续添加字符串。
其实string类型的字符串是支持+和+=运算的,这里的本质是string中重载了operator+=这个操作符
我们来看下下面的例子:
string s="hello";s+="world";cout<<s<<endl;string s1="hello";cout<<s1+"world"<<endl;;s1=s1+="world";cout<<s1<<endl;string s2="hello";s2="world"+s2;cout<<s2<<endl;
pop_back()
pop_back()用于删除字符串尾部的一个字符,这个成员函数是在C++11标准中引入的,有的编译器可能不支持。
string s="hello";cout<<s<<endl;s.pop_back();cout<<s<<endl;s.pop_back();cout<<s<<endl;
当字符串中没有字符的时候,再调用pop_back(),是会发生报错的。
你看,devC++中直接崩溃了
insert
如果我们需要在字符串中间的某个位置插入一个字符串,这个时候我们就得掌握一个函数就是insert;
函数原型如下:
string& insert(size_t pos,const string& str);//pos前面插入一个string的字符串string& insert(size_t pos,const char*s);//pos前面插入一个C风格的字符串string& insert(size_t pos,size_t n,char c);//pos位置前面插入n个字符c
string s="abcdefghijk";string str="xxx";cout<<s<<endl;s.insert(3,str);cout<<s<<endl;const char*c="111"; s.insert(3,c);cout<<s<<endl;s.insert(3,3,'4');cout<<s<<endl;
find()
find()函数用于查找字符串中指定子串/字符,并返回子串/字符第一次出现的位置。
返回值
若找到,返回子串/字符在字符串中第一次出现的起始下标位置。
若未找到,返回npos
string s="hello world hello everyone";string str="llo";size_t n=s.find(str);cout<<n<<endl;n=s.find("llo");cout<<n<<endl;n=s.find("llo",n+1);cout<<n<<endl;
第二种用法
size_t n=s.find("word",0,3);//在s中,0这个指定位置开始查找“world中的前3个字符 cout<<n<<endl;n=s.find("everyone",n+1,5);
查找不到的情况
string s="hello world hello everyone"; string str="bit";size_t n=s.find(str);cout<<n<<endl;
substr()
substr()用于截取字符串中指定位置指定长度的子串
函数原型如下:
string substr(size_t pos =0,size_t len=npos) const;
string s="hello world hello everyone";string s1=s.substr(7);cout<<s1<<endl;string s2=s.substr(7,6);cout<<s2<<endl;
to_string
tostring函数可以将数字转换成字符串
string pi=to_string(3.14159);cout<<pi<<endl;
好了,今天的内容就到这里,我们明天再见。
相关文章:
蓝桥杯lesson3---string的使用
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” string的概念 string字符串是一种更加高级的封装,string字符串中包含了大量的方法,这些方法使得字符串的操作变得更加简单,string的使用&…...
Java设计模式 三 工厂方法模式 (Factory Method Pattern)
工厂方法模式 (Factory Method Pattern) 是一种常见的创建型设计模式,旨在通过定义一个接口来创建对象,而将实例化对象的具体类延迟到子类中。工厂方法模式允许客户端通过工厂方法来创建对象,而不需要直接调用构造函数,这样可以减…...
日志收集Day005
1.filebeat的input类型之filestream实战案例: 在7.16版本中已经弃用log类型,之后需要使用filebeat,与log不同,filebeat的message无需设置就是顶级字段 1.1简单使用: filebeat.inputs: - type: filestreamenabled: truepaths:- /tmp/myfilestream01.lo…...
java开发,IDEA转战VSCODE配置(mac)
一、基本java开发环境配置 前提:已经安装了jdk、maven、vscode,且配置了环境变量 1、安装java相关的插件 2、安装spring相关的插件 3、vscode配置maven环境 打开 VsCode -> 首选项 -> 设置,也可以在setting.json文件中直接编辑&…...
Effective C++读书笔记——item23(用非成员,非友元函数取代成员函数)
一、主要观点: 在某些情况下,使用 non-member、non-friend 函数来替换 member 函数可以增强封装性和可扩展性,提供更好的软件设计。 二、详细解释: 封装性: 类成员函数的封装性考量:成员函数可以访问类的…...
(3)STM32 USB设备开发-USB存储设备
例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为使用芯片内部flash作为USB存储设备的例程,没有知识,全是实操,按照步骤就能获得一个STM32的U盘。本例子是在野火F103MINI开发板上验证的,如果代码…...
考研408笔记之数据结构(五)——图
数据结构(五)——图 1. 图的基本概念 1.1 图的定义 1.2 有向图和无向图 在有向图中,使用圆括号表示一条边,圆括号里元素位置互换没有影响。 在无向图中,使用尖括号表示一条边,尖括号里元素位置互换则表示…...
【博客之星】年度总结:在云影与墨香中探寻成长的足迹
🐇明明跟你说过:个人主页 🔖行路有良友,便是天堂🔖 目录 一、年度回顾 1、创作历程 2、个人成长 3、个人生活与博客事业 二、技术总结 1、赛道选择 2、技术工具 3、实战项目 三、前景与展望 1、云原生未来…...
springboot 调用 c++生成的so库文件
一、创建c文件 SoTest.h #pragma once class SoTest {int Add(int a,int b); };SoTest.cpp #include "SoTest.h"int SoTest::Add(int a, int b) {return a b; }二、创建so文件 /home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so 三、java代码 Maven依…...
简识JVM栈帧中的操作数栈
在JVM(Java虚拟机)中,栈帧(Stack Frame)是方法执行时的数据结构,用于存储局部变量、操作数栈、方法返回地址等信息。 其中,操作数栈(Operand Stack)是栈帧中的一个重要组…...
在 Kubernetes 上快速安装 KubeSphere v4.1.2
目录标题 安装文档配置repo安装使用插件 安装文档 在 Kubernetes 上快速安装 KubeSphere 配置repo export https_proxy10.10.x.x:7890 helm repo add stable https://charts.helm.sh/stable helm repo update安装 helm upgrade --install -n kubesphere-system --create-name…...
腾讯 Hunyuan3D-2: 高分辨率3D 资产生成
腾讯 Hunyuan3D-2:高分辨率 3D 资产生成的突破 前言 在当今数字化时代,3D 资产生成技术正变得越来越重要。无论是游戏开发、影视制作还是虚拟现实领域,高质量的 3D 模型和纹理都是创造沉浸式体验的关键。然而,传统的 3D 资产制作…...
论文阅读--Qwen22.5技术报告
Qwen2 1 引言 所有模型都是在超过7 trillion token(7万亿)的高质量、大规模数据集上预训练的 2 Tokenizer & Model 2.1 Tokenizer 沿用Qwen(Bai等人,2023a)的做法,我们采用了基于字节级字节对编码…...
python如何导出数据到excel文件
python导出数据到excel文件的方法: 1、调用Workbook()对象中的add_sheet()方法 wb xlwt.Workbook() ws wb.add_sheet(A Test Sheet) 2、通过add_sheet()方法中的write()函数将数据写入到excel中,然后使用save()函数保存excel文件 ws.write(0, 0, 1234…...
pyhton学习笔记(三)
目录 1.变量 2.变量的命名规则 3.常用函数汇总 4.常用数据类型汇总 5.算术运算符 6.比较运算符和逻辑运算符 7.常见的三种格式化输出方法 8.分支语句 1.变量 变量就是可以变化的量,可以理解为是一个存储东西的盒子,盒子里面可以放一些程序里需要…...
时间类型数据处理:基于Python的datetime库和pandas库
一、datetime库常用方法 日期的数据类型主要有两种:一是包含时间的datetime类型,二是不包含时间的date类型。这里的时间指具体的时、分、秒、甚至毫秒。 1、自定义日期、时间、获取本地时间、获取本地日期、获取年份、月份、月号、小时、分钟、秒、星期…...
CPU 缓存基础知识
并发编程首先需要简单了解下现代CPU相关知识。通过一些简单的图,简单的代码,来认识CPU以及一些常见的问题。 目录 CPU存储与缓存的引入常见的三级缓存结构缓存一致性协议MESI协议缓存行 cache line 通过代码实例认识缓存行的重要性 CPU指令的乱序执行通过…...
vue3 中如何监听 props 中的值的变化
在 Vue 3 中,你可以使用 watch 函数来监听组件的 props 值的变化。watch 函数允许你观察一个或多个响应式数据源,并在这些数据源发生变化时执行回调函数。 以下是一个示例,展示了如何在 Vue 3 中使用 watch 来监听 props 中的值的变化&#…...
煤矿场景下矿工行为检测数据集VOC+YOLO格式24709张8类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):24709 标注数量(xml文件个数):24709 标注数量(txt文件个数):2470…...
Git处理冲突详解
文章目录 Git处理冲突详解一、引言二、冲突产生的原因三、解决冲突的步骤1. 手动解决冲突1.1 查看冲突文件1.2 编辑冲突文件1.3 提交解决冲突 2. 使用合并工具解决冲突 四、使用示例五、总结 Git处理冲突详解 一、引言 在团队协作开发中,Git冲突是不可避免的。当多…...
Jetson Orin Nano Super之jetson-fpv开源代码下载
Jetson Orin Nano Super之jetson-fpv开源代码下载 1. 源由2. 方法2.1 优化配置方案一:增加缓冲方案二:降低并发数方案三:临时禁用深度克隆 2.2 路径更换方案一:设置代理方案二:替换git协议方案三:替换https…...
gitlab使用多数据库
1. 说明 默认情况下,GitLab 使用一个单一的应用数据库,称为主数据库。为了扩展 GitLab,您可以将 GitLab 配置为使用多个应用数据库。 设置多个数据库后,GitLab 将使用第二个应用数据库用于 CI/CD 功能,称为 CI 数据库…...
【Redis】事务
前言: 对比MySQL事务:【MySQL篇】事务的认识以及四大特性-CSDN博客 弱化的原子性: redis 没有 "回滚机制". 只能做到这些操作 "批量执行". 不能做到 "一个失败就恢复到初始状态". 不保证一致性: 不涉及 "约束". 也没有…...
在vue3中使用datav完整引入时卡在加载页面的解决方法
文件修改 文件:node_modules/dataview\datav-vue3/package.json // "module": "./es/index.js","module": "./es/index.mjs", // 修改后使用完整引入,需要为datav配置文件添加相应方法 文件:node…...
WPA_cli P2P命令详解及使用
目录 通用命令 status scan scan_results add_network set_network enable_network reconfigure save_config quit P2P 相关命令 p2p_find p2p_peers p2p_connect [method] p2p_group_add [ssid=] [freq=] [ht40] [persistent] p2p_remove_client p2p_di…...
Kubernetes v1.28.0安装dashboard v2.6.1(k8s图形化操作界面)
准备工作 Kubernetes v1.28.0搭建教程请参考:Kubernetes v1.28.0集群快速搭建教程-CSDN博客 查看当前集群nodes都是ready状态 查看当前pods都是running状态 下载并修改配置文件 下载 recommended.yaml ,下载好之后,进入文件编辑 下载地址…...
性能测试监控与诊断
我们依据一个HTTP请求处理的过程,采用主流的J2EE技术栈,如下图所示 1>用户的请求通过网卡传送到服务器(中断信号),用户与服务器简历TCP/IP链接。也就是产说的TCP三次握手。既然是链接,就有限制ÿ…...
窥探QCC518x-308x系列与手机之间的蓝牙HCI记录与分析 - 耳机篇
上一篇是介绍如何窥探手机端Bluetooth的HCI log, 本次介绍是如何窥探Bluetooth的HCI log-耳机篇. 这次跟QCC518x/QCC308x测试的手机是Samsung S23 Ultra. QCC518x/QCC308x透过HCI界面取得Log教学. 步骤1: 开启QMDE -> 选择ADK r1102 QCC3083 Headset workspace.步骤2: 点…...
Numpy基础02(Numpy对数组的基本操作)
Numpy的基本操作 2.3.1 ndarray索引操作 一维数组:同一维列表大致相同 n np.array([1, 2, 3, 4, 5]) n[0], n[-1] #(1, 5)多维数组 n np.random.randint(0, 10, size(3, 4, 5)) print(n) # 访问最后一个元素并改为66 n[2,3,-1] 66 print(n)# 最后一行元素并…...
WPS计算机二级•幻灯片的基础操作
听说这是目录哦 PPT的正确制作步骤🛣️认识PPT界面布局🏜️PPT基础操作 快捷键🏞️制作PPT时 常用的快捷技巧🏙️快速替换PPT的 文本字体🌃快速替换PPT 指定文本内容🌅能量站😚 PPT的正确制作步…...
蓝桥杯准备 【入门1】顺序结构
P5705 【深基2.例7】数字反转 题目描述 输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。 解题思路:使用字符串比较简单…...
Java学习笔记(二十四)
1 策略模式 1.1 策略模式概述 策略模式(Strategy Pattern) 是一种行为设计模式,定义了一系列算法,并将它们封装成独立的类,使它们可以互相替换而不会影响使用它们的客户端代码。 策略模式的核心思想是将行为与环境解…...
React进阶之高阶组件HOC、react hooks、自定义hooks
React高级 高阶组件 HOC属性代理反向继承属性代理和反向继承的区别实例实例一实例二 HooksHooks APIuseState:useEffect:useLayoutEffect:useRef:useContext:useReducer:useMemouseCallback 自定义Hooks 拓展ÿ…...
在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)
在2024年的亚马逊云科技re:Invent全球云计算春晚里,亚马逊云科技CEO - Matt Garman介绍了亚马逊云科技的AI模型托管平台Amazon Bedrock上的模型蒸馏服务Model Distillation,令小李哥印象十分深刻。该功能可自动化地为特定场景的知识创建一个蒸馏模型。它…...
算法基础 -- 红黑树初识
红黑树初识 红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,它通过对每个节点增加颜色属性,以及在插入和删除节点时使用特定规则调整树结构来保持平衡。红黑树的特点是,在任何情况下,其树高都可以保持在…...
TTL 在 Redis 缓存中的作用
Redis TTL(Time To Live)与缓存的关系 TTL(Time To Live,生存时间)是 Redis 提供的一种自动过期机制,用于控制键值对的存活时间。当 TTL 到期后,Redis 会自动删除该键,避免长期占用…...
利用 SAM2 模型探测卫星图像中的农田边界
将 Segment Anything Model Version 2 应用于卫星图像以检测和导出农业地区田地边界的分步教程 🌟 简介 手动绘制田地边界是最耗时的任务之一,其准确性取决于绘制者的表现。然而,精确的边界检测在很多领域都有应用。例如,假设您…...
Java春招面试指南前言
在当今竞争激烈的就业市场中,对于即将踏入职场的Java开发者而言,春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南,助力大家顺利通过面试,开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…...
安宝特方案 | 智能培训:安宝特AR如何提升企业技能培训的效率与互动性
随着企业不断推进数字化转型,传统培训方式已无法满足现代企业对高效、灵活培训的需求。尤其在技术更新频繁、工艺流程复杂、员工流动性大的环境中,传统培训模式的局限性愈加明显。为了提升培训质量、降低培训成本,并帮助员工迅速掌握新技能&a…...
Python网络自动化运维---用户交互模块
文章目录 目录 文章目录 前言 实验环境准备 一.input函数 代码分段解析 二.getpass模块 前言 在前面的SSH模块章节中,我们都是将提供SSH服务的设备的账户/密码直接写入到python代码中,这样很容易导致账户/密码泄露,而使用Python中的用户交…...
最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机 一、前言二、设备要求三、环境要求四、安装4.1 环境安装4.2 JumpServer安装4.3 访问JumpServerWeb端,进行登录 五、登录Web控制台 一、前言 JumpServer是广受欢迎的开源堡垒机。运维必备神器!JumpServe…...
【前端】Hexo 建站指南
文章目录 前言生成站点本地测试部署云端参考 前言 更好的阅读体验:https://blog.dwj601.cn/FrontEnd/Hexo/build-your-own-website-with-hexo/ 笔记记多了,想要分享给同学们一起交流进步,该怎么办?想要搭建一个属于自己的知识库…...
(Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
源码 论文 下载地址: cc基于JAVA的网络通讯系统设计与实现(源码系统论文)https://download.csdn.net/download/weixin_39682092/90299782https://download.csdn.net/download/weixin_39682092/90299782 第1章 绪论 1.1 课题选择的…...
WPF基础 | 初探 WPF:理解其核心架构与开发环境搭建
WPF基础 | 初探 WPF:理解其核心架构与开发环境搭建 一、前言二、WPF 核心架构2.1 核心组件2.2 布局系统2.3 数据绑定机制2.4 事件处理机制 三、WPF 开发环境搭建3.1 安装 Visual Studio3.2 创建第一个 WPF 应用程序 结束语优质源码分享 WPF基础 | 初探 WPFÿ…...
插入排序
直接插入排序 直接插⼊排序是⼀种简单的插⼊排序法,其基本思想是:把待排序的记录按其关键码值的⼤⼩逐个插 ⼊到⼀个已经排好序的有序序列中,直到所有的记录插⼊完为⽌,得到⼀个新的有序序列。 例如:我们玩扑克牌时&…...
2025最新 Docker 国内可用镜像源仓库地址(01月02日更新)
1. 添加docker镜像地址 使用编辑器打开配置文件 /etc/docker/daemon.json(如果没有该文件,可以新建一个) 2. vi daemon.json, 写入以下内容 {"builder": {"gc": {"defaultKeepStorage": "20GB",&…...
Java 反射与动态代理:实践中的应用与陷阱
Java 反射与动态代理:实践中的应用与陷阱 在现代Java应用中,反射和动态代理提供了强大的灵活性,但它们也带来了性能和复杂度上的挑战。本文将深入探讨这些技术在实际项目中的应用,分析它们可能导致的陷阱,并提供详细的…...
tp8读取mysql导出excel
环境:php8.3, thinkphp8.0, mysql8.0 use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Alignment; use think\facade\Db; use think\response\Json;class Index {public function index…...
【自己动手开发Webpack插件:开启前端构建工具的个性化定制之旅】
在前端开发的世界里,Webpack无疑是构建工具中的“明星”。它强大的功能可以帮助我们高效地打包和管理前端资源。然而,有时候默认的Webpack功能可能无法完全满足我们的特定需求,这时候就需要自定义Webpack插件来大展身手啦!今天&am…...
vue2使用flv.js在浏览器打开flv格式视频
组件地址:GitHub - bilibili/flv.js: HTML5 FLV Player flv.js 仅支持 H.264 和 AAC/MP3 编码的 FLV 文件。如果视频文件使用了其他编码格式就打不开。 flv.vue <template><div><el-dialog :visible.sync"innerVisibleFlv" :close-on-pre…...