【问题标题】:How do I use custom characters in a java string?如何在 java 字符串中使用自定义字符?
【发布时间】:2020-07-14 08:27:58
【问题描述】:

我正在尝试使用随机字符加密 java 中的文件。我使用 Windows 10 中的私有字符编辑器应用程序创建了这些字符。

但是,当我用这些自定义字符替换字符串中的字母时,这些字母会替换为“?”而不是所需的字符。

如何才能将字母替换为所需的字符?

谢谢!

编辑:这是角色的截图。

String text;
                
    while ((text = br.readLine()) != null) {
        System.out.println(text.replace("a", ""));
    }
                
    br.close();

【问题讨论】:

  • @user 请检查我刚刚发布的编辑。我需要改变什么?
  • 嗯,那真的不是字体问题吗?
  • 我需要用所有这些自定义字符创建一个字体,然后将字体导入 eclipse 吗?
  • @ElliottV4 当您执行System.out.println() 时,您希望终端使用您的png 文件?如果是这样,您需要创建自定义字体。
  • 您正面临X Y Problem...您专注于解决症状的方法,但是您忽略了其他一些(真正的)问题。您需要添加代码来演示如何使用此字符来加密数据。您是否使用了角色的一些指标?您是否在插入实际角色?提供一些细节,否则你会被卡在这个死胡同里一段时间。

标签: java encryption


【解决方案1】:

您遇到的第一个问题是您尝试使用System.out.print 将此文本写入控制台。由于多种原因,控制台输出相当有限,主要是因为控制台 UI 不是由您的程序绘制的,因此您对它的控制有限。如果要显示这些字符,则需要创建图形用户界面。

最简单的 GUI 就是显示一个消息对话框:

String text = "";
JOptionPane.showMessageDialog(null, text);

第二个问题是,GUI 必须使用您使用私有字符编辑器应用程序创建的 custom font。这就是这个“字符编辑器”的工作原理:它创建一个自定义字体,然后由其他 Windows 应用程序使用。经过一番挖掘,我发现编辑器将自定义字体保存为TTE file,这是我以前从未听说过的文件格式。有一个标准的Java API to load custom fonts,但我不确定它是否支持“私人字符编辑器”创建的文件。

如果您对创建自定义字体很认真,您可能希望改用更标准的字体编辑软件,例如FontForge

【讨论】:

  • 谢谢!我会调查一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多