csharp高级练习题:匹配而代【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp高级练习题:匹配而代【难度:3级】:

我得到了很多起这样的文件:


项目名称:素数
作者:克恩
公司:金
电话:+ 1-503-555-0091
日期:周二2005年4月9日
版本:6.7
等级:阿尔法

在这里,我们将与上面一样,而不是与文件中的字符串数据字符串的工作.

功能变化率(s,PROG,版本)给出:

S =数据,PROG = "梯子",版本= "1.1"将返回:

"计划:梯子作者:g964电话:+ 1-503-555-0090日期:2019年1月1日版本:1.1"

规则:

  • 日期应始终是"2019年1月1日".

  • 作者应始终是"g964".

  • 与提供给您的功能PROG参数替换当前"节目名称".
    同时删除’“标题”’,所以这个例子的情况下"节目名称:素数"``变成"程序:天梯".

  • 删除含有"公司""等级"完全的行.

  • 电话号码和版本必须是有效的格式.

在给定的字符串数据有效的版本是一个或多个数字后跟一个点,再跟着一个或多个数字.所以0.6,5.4,和14.275 1.99都是有效的,但像’版本.6,5,14.2.7和1.9.9`无效.

有效的电话号码格式是+ 1-XXX-XXX-XXXX,其中每一x是一个数字.

  • 如果手机或版本格式无效,返回"ERROR:VERSION或PHONE".

如果版本格式是有效的版本比2.0其他任何东西,以提供给你的函数的版本参数替换它.
如果是2.0,请不要修改它.

  • 如果电话号码是有效的,用’"+ 1-503-555-0090"`替换它.

注意

  • 你可以看到其他的例子,在"测试样品".

编程目标:

public class MatchSubst
{
    public static string Change(string s, string prog, string version)
    {
        // your code
    }
}


测试样例:

using System;
using NUnit.Framework;
[TestFixture]
public static class MatchSubstTests 
{
   private static void dotest(string s, string prog, string version, string exp) {
        Console.Write("s:\n" + s + "\n");
        string ans = MatchSubst.Change(s, prog, version);
        Console.Write("ACTUAL:\n" + ans + "\n");
        Console.Write("EXPECT:\n" + exp + "\n");
        Console.Write("{0:D}\n", exp == ans);
        Assert.AreEqual(exp, ans);
        Console.WriteLine("-");   
    }


最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp进阶练习题:写号的扩展形式【难度:2级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp进阶练习题:的卡的功能甲板…【难度:2级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/matching-and-substituting

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值