2 回答
TA贡献1821条经验 获得超4个赞
要不就
string str = "Please Change 2015";
string str2 = String.Join("", str.Select(x => char.IsDigit(x) ? (char)(9-(x-'0')+'0') : x).ToList());
输出
Please Change 7984
解释
-'0' // convert it from char to a number
+'0' // convert it back to a char
(char) // make sure we output characters again
TA贡献1864条经验 获得超6个赞
StringBuilder对我来说,这听起来像是一份工作。附加每个非数字字符,对每个数字字符执行数学运算,最后输出完整字符串。
注意:这假设您不应该修改输入字符串,而是返回一个新字符串。
请参阅我的 repl或下面粘贴的代码。
using System;
using System.Text;
using System.Linq;
class MainClass {
public static void Main (string[] args) {
const string testcase = "Please Change 7984";
const string input = "Please Change 2015";
var builder = new StringBuilder();
input.ToList<Char>().ForEach(c => {
if ('0' <= c && c <= '9')
builder.Append('9' - c);
else
builder.Append(c);
});
var output = builder.ToString();
var success = (testcase == output);
Console.WriteLine($"output: {output}");
Console.WriteLine($"success: {success}");
}
}
输出:
>>> Mono C# compiler version 4.0.4.0
>>> output: Please Change 7984
>>> success: True
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报