12 --> 12XX-XXXX-XXXX-XXXX
2222333344445555666 ->2222-3333-4444-5555
要求如上,
四位中间加横杆,不足的用X代替。
出来的总共19(算上横杆)。
请问有简单方法取得嘛?
18 个解决方案
#1
没高手了
#2
自已写啊,这个容易
#3
有没简单的方法?最好不好太多判断语句的
,
说简单你回答干嘛?鄙视
,
说简单你回答干嘛?鄙视
#4
来位高手帮下吧
#5
这么简单的,没人我要接贴了。。。
我要的最好是一个.net库函数就能搞定的。。。。。
我要的最好是一个.net库函数就能搞定的。。。。。
#6
这个还不简单
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 19
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Tstr)
</script>
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 19
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Tstr)
</script>
#7
for i = 1 to 19
我是根据你给出例子的规律来算的
我是根据你给出例子的规律来算的
#8
Sorry,上面有误
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 16
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Left(Tstr,Len(Tstr)-1))
</script>
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 16
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Left(Tstr,Len(Tstr)-1))
</script>
#9
有没更简单的方法?
#10
private string GetFormatString(string code)
{
if(code==null || code.Length==0)
{
return "";
}
while(code.Length<16)
{
code=code+"X";
}
if(code.Length>16)
{
code=code.Substring(0,16);
}
int i=1;
int j=0;
while(code.Length<19)
{
code=code.Insert(4*i+j,"-");
i++;
j++;
}
return code;
}
{
if(code==null || code.Length==0)
{
return "";
}
while(code.Length<16)
{
code=code+"X";
}
if(code.Length>16)
{
code=code.Substring(0,16);
}
int i=1;
int j=0;
while(code.Length<19)
{
code=code.Insert(4*i+j,"-");
i++;
j++;
}
return code;
}
#11
不够精~~~
#12
你想要多精?
#13
10个语句内,最好一个格式化函数就搞定!
#14
//可以完全满足你的要求,已经测试难过,不过代码有点杂乱
string A(string str)
{
return string.Format("{0}-{1}-{2}-{3}",(str.Length>=4)?str.Substring(0,4):str.PadRight(4,'X'),
(str.Length>=8)?str.Substring(4,4):((str.Length>=4)?str.Substring(4):"").PadRight(4,'X'),
(str.Length>=12)?str.Substring(8,4):((str.Length>=8)?str.Substring(8):"").PadRight(4,'X'),
(str.Length>=16)?str.Substring(12,4):((str.Length>=12)?str.Substring(12):"").PadRight(4,'X'));
}
string A(string str)
{
return string.Format("{0}-{1}-{2}-{3}",(str.Length>=4)?str.Substring(0,4):str.PadRight(4,'X'),
(str.Length>=8)?str.Substring(4,4):((str.Length>=4)?str.Substring(4):"").PadRight(4,'X'),
(str.Length>=12)?str.Substring(8,4):((str.Length>=8)?str.Substring(8):"").PadRight(4,'X'),
(str.Length>=16)?str.Substring(12,4):((str.Length>=12)?str.Substring(12):"").PadRight(4,'X'));
}
#15
//测试通过,sorry,打错了
#16
...谢谢先...
#17
没有更精简的方法,这样看着还是有点复杂
#18
for i=0 to 15-CardNo.length
CardNo &="X"
next
cardNo=CardNo.insert(4,"-")
cardNo=CardNo.insert(9,"-")
cardNo=CardNo.insert(14,"-")
return cardNo.substring(0,19)
CardNo &="X"
next
cardNo=CardNo.insert(4,"-")
cardNo=CardNo.insert(9,"-")
cardNo=CardNo.insert(14,"-")
return cardNo.substring(0,19)
#1
没高手了
#2
自已写啊,这个容易
#3
有没简单的方法?最好不好太多判断语句的
,
说简单你回答干嘛?鄙视
,
说简单你回答干嘛?鄙视
#4
来位高手帮下吧
#5
这么简单的,没人我要接贴了。。。
我要的最好是一个.net库函数就能搞定的。。。。。
我要的最好是一个.net库函数就能搞定的。。。。。
#6
这个还不简单
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 19
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Tstr)
</script>
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 19
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Tstr)
</script>
#7
for i = 1 to 19
我是根据你给出例子的规律来算的
我是根据你给出例子的规律来算的
#8
Sorry,上面有误
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 16
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Left(Tstr,Len(Tstr)-1))
</script>
<script language=vbscript>
Str="2222333344445555666"
Tstr=""
for i = 1 to 16
M = M + 1
If Mid(Str,i,1) <> "" THEN
Tstr=Tstr + Mid(Str,i,1)
N = N + 1
Else
Tstr = Tstr + "#"
End If
IF M mod 4 = 0 THEN
Tstr=Tstr + "-"
ENd iF
NExt
alert(Left(Tstr,Len(Tstr)-1))
</script>
#9
有没更简单的方法?
#10
private string GetFormatString(string code)
{
if(code==null || code.Length==0)
{
return "";
}
while(code.Length<16)
{
code=code+"X";
}
if(code.Length>16)
{
code=code.Substring(0,16);
}
int i=1;
int j=0;
while(code.Length<19)
{
code=code.Insert(4*i+j,"-");
i++;
j++;
}
return code;
}
{
if(code==null || code.Length==0)
{
return "";
}
while(code.Length<16)
{
code=code+"X";
}
if(code.Length>16)
{
code=code.Substring(0,16);
}
int i=1;
int j=0;
while(code.Length<19)
{
code=code.Insert(4*i+j,"-");
i++;
j++;
}
return code;
}
#11
不够精~~~
#12
你想要多精?
#13
10个语句内,最好一个格式化函数就搞定!
#14
//可以完全满足你的要求,已经测试难过,不过代码有点杂乱
string A(string str)
{
return string.Format("{0}-{1}-{2}-{3}",(str.Length>=4)?str.Substring(0,4):str.PadRight(4,'X'),
(str.Length>=8)?str.Substring(4,4):((str.Length>=4)?str.Substring(4):"").PadRight(4,'X'),
(str.Length>=12)?str.Substring(8,4):((str.Length>=8)?str.Substring(8):"").PadRight(4,'X'),
(str.Length>=16)?str.Substring(12,4):((str.Length>=12)?str.Substring(12):"").PadRight(4,'X'));
}
string A(string str)
{
return string.Format("{0}-{1}-{2}-{3}",(str.Length>=4)?str.Substring(0,4):str.PadRight(4,'X'),
(str.Length>=8)?str.Substring(4,4):((str.Length>=4)?str.Substring(4):"").PadRight(4,'X'),
(str.Length>=12)?str.Substring(8,4):((str.Length>=8)?str.Substring(8):"").PadRight(4,'X'),
(str.Length>=16)?str.Substring(12,4):((str.Length>=12)?str.Substring(12):"").PadRight(4,'X'));
}
#15
//测试通过,sorry,打错了
#16
...谢谢先...
#17
没有更精简的方法,这样看着还是有点复杂
#18
for i=0 to 15-CardNo.length
CardNo &="X"
next
cardNo=CardNo.insert(4,"-")
cardNo=CardNo.insert(9,"-")
cardNo=CardNo.insert(14,"-")
return cardNo.substring(0,19)
CardNo &="X"
next
cardNo=CardNo.insert(4,"-")
cardNo=CardNo.insert(9,"-")
cardNo=CardNo.insert(14,"-")
return cardNo.substring(0,19)