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