我想从Unicode代码点创建一个测试字符串
像这样的东西
65 asCharacter asString, 66 asCharacter asString, 67 asCharacter asString, 65 asCharacter asString, 769 asCharacter asString
要么
String with: 65 asCharacter with: 66 asCharacter with: 67 asCharacter with: 65 asCharacter with: 769 asCharacter
这有效
我正在寻找一种方法将整数值数组转换为类String的实例.
#(65 66 67 65 769)
有内置的方法吗?我正在寻找这样的答案在Smalltalk实现中测试Unicode支持的正确方法是什么?一个,但对于字符串.
很多种方法
1. #streamContents:
如果您正在执行更大的字符串连接/构建,请使用流,因为它更快.如果只是连接几个字符串使用更可读的东西.
String streamContents: [ :aStream | #(65 66 67 65 769) do: [ :each | aStream nextPut: each asCharacter ] ]
要么
String streamContents: [ :aStream | aStream nextPutAll: (#(65 66 67 65 769) collect: #asCharacter) ]
2. #withAll:
String withAll: (#(65 66 67 65 769) collect: #asCharacter)
3. #collect:as:String
#(65 66 67 65 769) collect: #asCharacter as: String
4. #joinUsing:字符
(#(65 66 67 65 769) collect: #asCharacter) joinUsing: ''
注意:
至少在Pharo你可以使用[ :each | each selector ]
,或只是简单地使用#selector
.我发现后者对于简单的事情更具可读性,但这可能是个人偏好.