当textbox
仅包含我使用padleft
方法的数字时,此处我的textbox
包含字母数字文本,为此我需要使用零填充。
textBox1.Text = textBox1.Text.PadLeft(5, '0');
当textbox
包含1.output为00001的数字时,此行有效。
现在,如果我在文本框中的文本是A1.output应该是A00001。
如果AB1输出应为AB00001。
位数应为5
答案 0 :(得分:1)
您可以使用RegEx
:
var parts = Regex.Split(textBox1.Text, "(\\d+)");
textBox1.Text = parts.Length<2 ? parts[0] : parts[0] + parts[1].PadLeft(5, '0');
更新:如果您不想使用Regex
,可以尝试以下代码:
int i = 0;
for(;i < textBox1.TextLength; i++){
if(char.IsDigit(textBox1.Text[i])) break;
}
textBox1.Text = textBox1.Text.Substring(0,i) +
textBox1.Text.Substring(i).PadLeft(5,'0');
答案 1 :(得分:0)
您可以使用此代码。我以为你想要从数字中分割字母。如果您只有数字或数字,它也会起作用。
string input = "A1";
var match = Regex.Match(input, @"([a-zA-Z]*)(\d*)");
string group1 = match.Groups.Count > 1 ? match.Groups[1].Value : "";
string group2 = match.Groups.Count > 2 ? match.Groups[2].Value : "";
string output = group1 + group2.PadLeft(6 - group1.Length - group2.Length, '0');