我正在从表中读取字符串 ID 值。当用户输入 ID 时,是使用用户定义的输入掩码完成的,因此掩码可能类似于000-00-0000
, ##-######
, AA-9999999
等。掩码会因用户而异,因此必须在运行时进行评估。
鉴于表中仅存储字母数字文本,那么应用该掩码生成新字符串的最佳方法是什么?
例如:
表值 =“123456789”
如果用户定义了掩码000-00-0000
,我想得到字符串123-45-6789
.
如果用户定义了掩码AA-9999999
,我想得到字符串12-3456789
.
如果用户定义了掩码FR999_999999
,我想得到字符串FR123_456789
.
看起来掩码模式是它会为掩码中的每个破折号插入匹配的破折号。如果是这样的话,那么这应该可行。
public static string MaskValue(string mask, string value) {
var builder = new System.Text.StringBuilder();
var maskIndex = 0;
var valueIndex = 0;
while (maskIndex < mask.Length && valueIndex < value.Length) {
if (mask[maskIndex] == '-') {
builder.Append('-');
maskIndex++;
} else {
builder.Append(value[valueIndex]);
maskIndex++;
valueIndex++;
}
}
// Add in the remainder of the value
if (valueIndex + 1 < value.Length) {
builder.Append(value.Substring(valueIndex);
}
return builder.ToString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)