如何将一组字符串裁成相同的长度?
比如以下人名Annabe
Angeline
Angelina Christina
Christine Isabella
Elizabeth Rebecca
Juliana Jocelyn
Rose linda
这些人名有长有短,怎么把他们都裁成相同的长度,比如10个字符,如果长了,则把人名尾端去掉,如果不够长,则在人名后面加上特别的字符占位,比如------点位
形成以下这样
Annabe----
Angeline--
Angelina C
Christine I
Elizabeth R
Juliana Joc
Rose linda $s1 = "Angelina Christina"
$s2 = ""
$slen = StringLen($s1)
$s2 = StringLeft($s1, 10)
If $slen<10 Then
$i = $slen
While $i<=10
$s2 &= "-"
$i += 1
WEnd
EndIf
MsgBox(0, "", $s2) 本帖最后由 netegg 于 2015-2-24 18:43 编辑
Local $aA=['Annabe','Angeline','Angelina C','Christine I','Elizabeth R','Juliana Joc','Rose linda']
For $i In $aA
ConsoleWrite(stringleft($i&'------------', 10)& @cr)
Next 本帖最后由 netegg 于 2015-2-24 19:16 编辑
Christine I
Elizabeth R
这两个是11个字符吧
楼主说明白点,空格在什么情况下算字符,什么情况下算
从
Angelina C
Christine I
Elizabeth R
Juliana Joc
Rose linda
这几行看,第1行算,第2,3,4行不算,第5行算
多说一句,要是想要固定宽度,只能用gdi,api的操作没戏,那个和字体本身的宽度有关 $s1 = "Angelina Christina"
$s2 = ""
$slen = StringLen($s1)
$s2 = StringLeft($s1, 10)
If $slen
veket_linux 发表于 2015-2-24 09:56 http://www.autoitx.com/images/common/back.gif
要的是这种,但是while部分我把=去掉了,大体上通过了。谢谢,netegg写的我不太懂。选2楼的答案吧。 本帖最后由 netegg 于 2015-3-1 16:29 编辑
Local $aA=['Annabe','Angeline','Angelina C','Christine I','Elizabeth R','Juliana Joc','Rose linda']
For $i In $aA
ConsoleWrite(StringRegExpReplace(stringleft($i&' ', 10), '\s(?=\s*$)','-')& @cr)
Next
回复 5# sex123
2楼那个不是一样吗Christine Isabella也出不来Christine I呀 帮顶{:face (427):}
页:
[1]