一、前置
题目概述:给定一段文本数据,要求按照用户输入,统计出文本中某个字符串出现的次数、删除某个字符串或是替换某个字符串。
针对这个问题,我们可以采用切片对文本数据进行处理。切片会根据选定的字符串将文本数据中的该字符串删除,并把剩余的部分放在一个列表中,依据这一特性,我们并可以实现统计、删除和替换功能。
二、代码实操
字符串的统计
字符串的统计,即统计出用户输入的字符串在文本中出现的次数。我们假定用户输入的字符串保存在变量userIpt中,且文本数据保存在txtContent中。
使用切片时,会将除去目标字符串的剩余的文本存放在一个列表中,所以我们只需要统计出列表的长度,并让长度-1,即可统计出字符串出现次数。
onSearch() { console.log(this.userIpt); const count = this.txtContent.split(this.userIpt).length - 1; const resultt = this.txtContent.split(this.userIpt); console.log("切片功能展示"); console.log(resultt); console.log(count); this.result = count; },
字符串的删除
由于切片功能会自动删除目标字符串,并将剩余的数片文本数据存放在一个列表中,所以我们只需要将其余部分重新连接在一起即可实现删除操作。
这里使用join连接,连接字符串为空字符串""
onDelete() { if (this.deleteString.trim() === "") { uni.showToast({ title: '请输入要删除的字符串', icon: 'none', }); return; } // 执行删除字符串操作 const deletRe = this.txtContent.split(this.deleteString); this.txtContent = deletRe.join(""); // 重新进行文件分析 this.analyzeFile(this.txtContent); this.textContent = this.txtContent; },
字符串替换
原理同字符串的删除。我们假设用户输入的字符串存放在tihuan中,用户想要替换掉的字符串存放在huantiL中,这时依据tihuan对文本数据进行切片,并用huantiL对剩余的部分进行连接
即 replaceTemp.join(targetInput)
即可完成替换操作。
onReplace() { // 获取用户输入的字符串 const replaceInput = String(this.tihuan); // 用户想要替换掉的字符串 const targetInput = String(this.huantiL); console.log("输入的:", replaceInput); console.log("目标:", targetInput); const replaceTemp = this.txtContent.split(this.tihuan); this.txtContent = replaceTemp.join(targetInput); this.textContent = this.txtContent; },