# string-extractor-state-machine **Repository Path**: guo-junzhang/string-extractor-state-machine ## Basic Information - **Project Name**: string-extractor-state-machine - **Description**: 根据以下问题描述,采用状态图/状态机建模,并实现之: 用户需要从源代码文件中提取源文件中的所有字符串。字符串是双引号之间的文本,但是字符串中的反斜杠会转义下一个字符,比如对于字符串:”一般学习一门编程语言的时候,基本上第一个程序是输出\”Hello World!\””,应该输出:一般学习一门编程语言的时候,基本上第一个程序是输出”Hello World!”。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-16 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 字符串提取器状态机 基于状态机设计的字符串提取器,能够从源代码中提取双引号内的字符串,并正确处理转义字符。 ## 功能特性 - ✅ 基于状态机的设计,清晰的状态转移 - ✅ 正确处理双引号内的字符串提取 - ✅ 支持各种转义字符序列(\n, \t, \", \\, 等) - ✅ 错误检测(未终止的字符串) - ✅ 详细的调试日志 ## 状态机设计 状态机包含5个状态和9个状态转移: ### 状态 1. **初始状态** - 系统初始化 2. **普通文本状态** - 在字符串外扫描 3. **字符串内状态** - 收集字符串内容 4. **转义字符状态** - 处理转义序列 5. **结束状态** - 处理完成 ### 状态转移 1. 初始状态 → 普通文本状态 2. 普通文本状态 → 普通文本状态 (自循环) 3. 普通文本状态 → 字符串内状态 4. 普通文本状态 → 结束状态 5. 字符串内状态 → 字符串内状态 (自循环) 6. 字符串内状态 → 转义字符状态 7. 字符串内状态 → 普通文本状态 8. 字符串内状态 → 结束状态 9. 转义字符状态 → 字符串内状态 ## 项目结构