【问题标题】:one 2d array for every character in alphabet in javajava中字母表中每个字符的一个二维数组
【发布时间】:2018-01-10 22:17:24
【问题描述】:

大家好,我正在尝试用 0 和 1 填充 Java 中的二维数组。 1 代表白色,0 代表黑色。我想为字母 a 到 z 中的每个字符都有一个二维数组 示例:

    String[][] myArray = {//letter A
    {"0", "0", "1", "0", "0"},
    {"0", "1", "0", "1", "0"},
    {"1", "1", "1", "1", "1"},
    {"1", "0", "0", "0", "1"},
    {"1", "0", "0", "0", "1"},};

有没有快速的方法来做到这一点。我的二维数组需要 22 x 16

【问题讨论】:

  • 您能否详细说明这个二维数组与 A 的关系?
  • 这最终会给出一个固定大小的光栅字体。第一次处理字体时可能会有一些警告,所以你真的应该研究它们是如何工作的。例如,由于像jg 这样的字母,baseline 不是底线。你应该想知道水平和垂直间距是否包含在 16x22 矩阵中...
  • @VidorVistrom 如果看 1,它们看起来像一个字母。

标签: java ascii


【解决方案1】:

您可以开发一个小型编辑器来“绘制”像素并将它们转换为 ASCII 代码,或者只使用任何可用的 ASCII 或像素字体并将其转换为您的格式。

我的意思是,如果你使用这样一个简单的基于磁贴的字体图像

并提取像素信息并将它们转换为您的数组格式,这样会更快。由于字符具有固定大小,因此您可以很容易地从这样的图像中获取特定的字符范围,您只需要加载图像并读取 2d 像素信息,但这应该很容易通过几行 Java 代码.

【讨论】:

  • 好的,我将图像作为一个和 0,你知道要分割它吗?
  • 好吧,你只需要弄清楚你需要的字母在哪里,然后用一个循环遍历它有多大的“瓷砖”。所以如果我用 MS Paint 打开图像并放大你可以看到左下角的像素坐标。要实际读取像素坐标处的颜色,您可以使用this example 并将其修改为仅在像素为黑色或白色时才返回。它不应该那么难,如果你自己弄清楚而不是仅仅使用别人编写的代码会更好。 :)
  • 我已经设法将字体图像的 0 和 1 放入 txt 文件并导入到二维数组中,我需要将其拆分为更小的二维数组
猜你喜欢
  • 2014-04-19
  • 2014-12-03
  • 2012-03-15
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多