You need to enable JavaScript to run this app. Rust如何检索文本文件/变量中的指定关键词关联用户名称
优惠活动
大模型
产品
解决方案
定价
更多

Rust如何检索文本文件/变量中的指定关键词关联用户名称

Rust实现文本关键词匹配关联用户名称的操作指南

现有代码问题修正

你当前的代码存在两个会导致运行失败的问题,需要先调整:

  • 变量名不匹配:定义了user_name变量,但读取用户输入时传入的是未定义的name引用,无法通过编译
  • 目录不存在的报错:执行fs::write写入文件前,如果本地没有创建files目录,会直接抛出IO错误

核心功能实现步骤

实现关键词匹配关联展示的逻辑不需要引入第三方依赖,用标准库能力就可以完成,分三个环节:

  1. 读写存储文件内容:把本地user_name.txt、user_wish.txt里的内容读到内存的字符串变量中
  2. 关键词匹配校验:检查读取到的用户愿望文本,是否包含你指定的目标关键词(如my、name)
  3. 命中关联展示:匹配到对应关键词时,把预先存储的用户名内容展示出来

可直接运行的完整代码

use std::fs;
use std::io;

fn main() -> io::Result<()> {
    // 自动创建存储目录,避免写入报错
    fs::create_dir_all("files")?;

    // 收集并存储用户名
    let mut user_name = String::new();
    println!("Hello what is your name: ");
    io::stdin().read_line(&mut user_name)?;
    let user_name = user_name.trim().to_string();
    fs::write("files/user_name.txt", &user_name)?;

    // 收集并存储用户愿望
    let mut user_wish = String::new();
    println!("What is your wish: ");
    io::stdin().read_line(&mut user_wish)?;
    let user_wish = user_wish.trim().to_string();
    fs::write("files/user_wish.txt", &user_wish)?;

    // 配置待匹配的关键词列表
    let match_keywords = ["my", "name"];
    // 读取本地存储的文本内容
    let stored_wish = fs::read_to_string("files/user_wish.txt")?;
    let stored_name = fs::read_to_string("files/user_name.txt")?;

    // 检查是否命中任意关键词
    let is_keyword_hit = match_keywords.iter()
        .any(|keyword| stored_wish.contains(keyword));

    // 命中后关联展示存储的用户名
    if is_keyword_hit {
        println!("Matched keyword detected, stored user name is: {stored_name}");
    }

    Ok(())
}

实现说明

  • 匹配逻辑用了标准库自带的字符串contains方法,属于子串精确匹配,完全覆盖你提到的检索my、name的基础需求
  • 调整了main函数的返回值为io::Result<()>,可以直接用?运算符简化错误处理,比原代码里零散的unwrap()更稳定,遇到IO错误时会按规范抛出,不会无预兆直接程序崩溃
  • 对用户输入的内容做了trim()处理,去掉读入时自动附带的换行符,避免存储到文件里的内容带多余空行,影响后续匹配和展示效果

内容的提问来源于stack exchange,提问作者Bebe Brož

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 20:06:08