You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#数组实现句子中两位数字翻转并翻倍功能?

C#处理句子中两位数字:翻转后翻倍的实现方案

实现思路

要完成这个需求,核心是精准识别句子里的独立两位数字,对每个数字执行「翻转→翻倍」操作后,替换回原句。可以用正则表达式快速定位目标数字,再通过回调函数处理每个匹配结果。

完整代码示例

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string originalSentence = "hi! I'm 51 years old.";
        // 匹配独立的两位数字(\b是单词边界,避免匹配长数字里的两位片段)
        string pattern = @"\b\d{2}\b";
        
        string processedSentence = Regex.Replace(originalSentence, pattern, ProcessTwoDigitNum);
        
        Console.WriteLine(processedSentence);
        // 输出结果: hi! I'm 30 years old.
    }

    static string ProcessTwoDigitNum(Match match)
    {
        string digitStr = match.Value;
        // 方式1:字符串反转实现数字翻转,直观易读
        char[] charArr = digitStr.ToCharArray();
        Array.Reverse(charArr);
        int reversedNum = int.Parse(new string(charArr));
        
        // 方式2:数学计算翻转,性能更优
        // int originalNum = int.Parse(digitStr);
        // int reversedNum = (originalNum % 10) * 10 + (originalNum / 10);
        
        // 计算翻倍后的值
        int doubledNum = reversedNum * 2;
        return doubledNum.ToString();
    }
}

代码说明

  1. 正则匹配:@"\b\d{2}\b" 确保只抓独立的两位数字,不会误识别123里的23这类片段。
  2. 回调处理:ProcessTwoDigitNum作为Regex.Replace的回调,逐个处理匹配到的数字。
  3. 数字翻转:提供两种实现方式,按需选择:
    • 字符串反转:逻辑简单,适合大多数业务场景;
    • 数学计算:通过取余、整除交换十位和个位,性能更好。
  4. 替换输出:将翻倍后的数字转成字符串,替换原句中的目标数字。

扩展提示

如果要处理带正负号的两位数字,把正则改成@"\b[+-]?\d{2}\b",翻转时保留符号即可。

内容的提问来源于stack exchange,提问作者power fitness

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:55:16