我在Scratch中遇到越来越多的情况,我必须将一个数字转换为其ACSII字符,反之亦然。块中没有构建的功能。
我的解决方案是创建一个大小为26的列表,并使用名为alphabet =“abcdefghijklmnopqrstuvwxyz”的变量将AZ添加到每个序列中,并使用Repeat块迭代它并将ALETABET的LETTER COUNT附加到列表中。结果是一个列表数据结构,在位置1到26之间有字母A_Z。实际创建我自己的ASCII表。
要进行转换,请说从26号到'Z'我必须遍历列表才能获得正确的CHAR值。它确实减慢了严重依赖于CHR()功能的程序。有更好或更有效的解决方案吗?
答案 0 :(得分:1)
我的解决方案是创建一个大小为26的列表,并使用名为alphabet =" abcdefghijklmnopqrstuvwxyz"
的变量将字母A-Z附加到每个序列中
停在那儿。您甚至不需要将其转换为列表。您可以直接从字符串中查找。
从索引中获取角色非常容易。只需使用(letter () of [])
块。
获取角色的索引更复杂。不幸的是,Scratch并没有内置的方法来做到这一点。我在这里要做的是定义index of [] in []
custom pseudo-reporter block:
define index of (char) in (str)
set [i v] to [1]
repeat until <<(i) = (length of (str))> or <(letter (i) of (str)) = (char)>>
change [i v] by (1)
<子> view online 子>
然后,您可以将该块调用为index of [a] in (alphabet)
,并将i
变量设置为1。
如果找不到该字符,此代码没有任何情况,但我提供的链接确实包括,如果您需要。
答案 1 :(得分:0)
你也可以使用类似于Scratch的Snap!,但是有更多的块。瞬间!有一个unicode块,它将字符转换为ASCII或unicode值。