7-1 单词替换 (10分)

设计一个对字符串中的单词查找替换方法,实现对英文字符串中所有待替换单词的查找与替换。
输入格式:
首行输入母字符串,第二行输入查询的单词,第三行输入替换后的单词。
输出格式:
完成查找替换后的完整字符串
在这里插入图片描述

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String str1 = sc.nextLine();
        String str2 = sc.nextLine();
        String[] s = str.split(" ");
        for (int i = 0; i < s.length; i++) {
            if (s[i].equals(str1)){
                s[i] = str2;
            }
        }
         String s1 = "";
        for (int i = 0; i < s.length; i++) {
            s1 += s[i] + " ";
        }
        System.out.println(s1.trim());
    }
}
### 单词替换功能的实现 在字符串处理领域,单词替换是一种常见的操作。以下是基于引用内容以及专业知识设计的一种方法来实现在字符串中找到特定单词并将其替换为另一个单词。 #### 方法描述 通过遍历整个字符串并将目标子串逐一提取出来进行匹配的方式完成此任务。如果发现待替换的目标单词,则执行替换逻辑,并记录下其位置以便后续可能的操作需求。 具体代码如下: ```python def replace_word(s, old_word, new_word): result = [] i = 0 n = len(s) while i < n: j = i # 找到下一个空格或者到达字符串结尾 while j < n and s[j] != ' ': j += 1 current_word = s[i:j] if current_word == old_word: result.append(new_word) # 替换单词 else: result.append(current_word) # 不替换 if j < n: # 如果不是最后一个字符则加上空格 result.append(' ') i = j + 1 return ''.join(result) # 测试案例 original_string = "hello world this is a test string" old_word = "test" new_word = "example" replaced_string = replace_word(original_string, old_word, new_word) print(replaced_string) # 输出:"hello world this is a example string" ``` 上述代码实现了逐字扫描输入字符串 `s` 的过程,在遇到与指定旧单词相等的部时即刻用新单词替代它[^1]。 另外一种更简洁的方法利用 Python 内置库 re (正则表达式),它可以高效地定位和修改文本中的模式片段: ```python import re def regex_replace_word(s, old_word, new_word): pattern = r'\b' + re.escape(old_word) + r'\b' replaced_str = re.sub(pattern, new_word, s) return replaced_str regex_replaced_string = regex_replace_word(original_string, old_word, new_word) print(regex_replaced_string) # 输出同样结果:"hello world this is a example string" ``` 这里我们构建了一个边界敏感型的正则表达式用于精确匹配完整的单词而不是部匹配[^2]。 对于复杂场景下的性能考量,当面对大量数据集或频繁查询请求时,可以考虑采用高级的数据结构如Trie(前缀树/单词查找树)[^3] 来优化搜索效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值