[Uniapp]文本文件数据:巧用切片实现字符串统计、删除、替换操作

一、前置

  题目概述:给定一段文本数据,要求按照用户输入,统计出文本中某个字符串出现的次数、删除某个字符串或是替换某个字符串。

  针对这个问题,我们可以采用切片对文本数据进行处理。切片会根据选定的字符串将文本数据中的该字符串删除,并把剩余的部分放在一个列表中,依据这一特性,我们并可以实现统计、删除和替换功能。

二、代码实操

字符串的统计

  字符串的统计,即统计出用户输入的字符串在文本中出现的次数。我们假定用户输入的字符串保存在变量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;
			},