我有一个表格的字符串值,10123X123456其中10是年份,123是一年中的日期数,其余的是系统生成的独特内容.在某些情况下,我需要在日期编号中添加400,以便例如上面的数字10523X123456.
我的第一个想法是对这三个字符进行子串,将它们转换为整数,向它添加400,将它们转换回字符串,然后调用replace原始字符串.这样可行.
但后来我发现我真正需要改变的唯一一个角色是第三个角色,原始值总是0-3,所以永远不会有任何"携带"问题.我进一步想到,数字的ASCII码点是连续的,因此例如将数字4加到字符"0"将导致"4",依此类推.这就是我最终做的事情.
我的问题是,有什么理由不会一直有效吗?我通常避免使用"ASCII算术",因为它不是跨平台或国际化友好的.但似乎有理由假设数字的代码点总是顺序的,即"4"总是比"3"多1.有人看到这个推理有什么问题吗?
这是代码.
string input = "10123X123456";
input[2] += 4;
//Output should be 10523X123456
Run Code Online (Sandbox Code Playgroud)