ruby - 无法使用正确的格式打印/写入文本

标签 ruby

我是 Ruby 新手,正在开发一个项目,从文件中获取文本,将文本转换为盲文格式,然后将盲文文本放入新文件中。

现在我可以读取文本,将整个字符串转换为数组。然后使用英文字符的哈希值来盲文,我可以运行映射并将数组的元素替换为盲文等效项。

由于格式问题,我在与新的盲文字符数组交互时遇到问题。

starting_message = ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
braille_converted_message = [
 "0.\n00\n..",
 "0.\n.0\n..",
 "0.\n0.\n0.",
 "0.\n0.\n0.",
 "0.\n.0\n0.",
 "..\n..\n..",
 ".0\n00\n.0",
 "0.\n.0\n0.",
 "0.\n00\n0.",
 "0.\n0.\n0.",
 "00\n.0\n.."]

我需要将新数组逐个元素打印到文件上,包括正确的格式。即

0.0.
00.0
....

我遇到的问题是它要么格式不正确,就像只显示为 0.\n00\n.. 或放入一条垂直线。

最佳答案

要从左向右书写,您需要转置您的输出。为此,您必须split每个元素,transpose结果和join之后他们:

puts braille_converted_message.map(&:split)
                              .transpose
                              .map(&:join)

输出:

0.0.0.0.0....00.0.0.00
00.00.0..0..00.0000..0
....0.0.0....00.0.0...

请注意,还有一个 Unicode block Braille Patterns :

⠓⠑⠇⠇⠕⠀⠺⠕⠗⠇⠙

关于ruby - 无法使用正确的格式打印/写入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66521734/

相关文章:

ruby-on-rails - 避免使用#encoding : UTF-8

ruby-on-rails - 这段 Ruby 代码的分解?

Ruby Struct 实例找不到名称中包含 '?' 的属性

ruby - Rails 5 使用 Devise 和 acts_as_tenant

ruby - 无限可枚举

ruby - Ruby 中的线程。线程池的替代品

Ruby String 类的多种方法和效率

ruby - 如何计算字符串开头的零个数

Ruby - 可以将 block 作为参数作为实际 block 传递给另一个函数吗?

ruby - IPTables 和不同的 Redis 客户端的奇怪问题