Smalltalk奇怪的打印错误
为了“填充”我正在打印的数字,使其始终为固定数量的字符,我根据给定数字中的整数数量生成填充字符串:Smalltalk奇怪的打印错误,smalltalk,gnu-smalltalk,Smalltalk,Gnu Smalltalk,为了“填充”我正在打印的数字,使其始终为固定数量的字符,我根据给定数字中的整数数量生成填充字符串: pad := ' '. (freqVal < 10) ifTrue: [ pad := ' ' ]. ((freqVal < 100) & (freqVal > 9)) ifTrue: [ pad := ' ' ]. ((freqVal < 1000) & (freqVal > 99)) ifTrue: [ pad := ' ' ]. st
pad := ' '.
(freqVal < 10) ifTrue: [ pad := ' ' ].
((freqVal < 100) & (freqVal > 9)) ifTrue: [ pad := ' ' ].
((freqVal < 1000) & (freqVal > 99)) ifTrue: [ pad := ' ' ].
stdout<<pad<<freqVal<<<<nl
pad:=''。
(freqVal<10)如果真的:[pad:=''。
((freqVal<100)和(freqVal>9))如果正确:[pad:=''。
((freqVal<1000)和(freqVal>99))如果正确:[pad:=''。
stdout我不太了解Gnu Smalltalk。当然也有一些方便的字符串方法或格式化程序可以重用。我的建议是首先将数字转换成字符串,然后用空白填充对其进行格式化。这样可以避免您遇到的类型转换问题
新字符串方法(最好是ST发行版中的现有方法):
我不太了解Gnu Smalltalk。当然也有一些方便的字符串方法或格式化程序可以重用。我的建议是首先将数字转换成字符串,然后用空白填充对其进行格式化。这样可以避免您遇到的类型转换问题
新字符串方法(最好是ST发行版中的现有方法):
当我在GNU Smalltalk中尝试此代码时,当我在GNU Smalltalk中尝试此代码时,
withLeading: aCharacter size: anInteger
(anInteger < self size) ifTrue: [^self copyFrom: 1 to: anInteger].
^((self species new: anInteger - self size) atAllPut: aCharacter ), self
9 asString withLeading: ($ ) size: 10 "result ' 9'"
10 asString withLeading: ($ ) size: 10 "result ' 10'"
999 asString withLeading: ($ ) size: 10 "result ' 999'"