我正在为我的小弟弟创建一个有趣的Java“Gibberish Translator”。他是精神残疾人,我相信他会得到一些帮助。 :)我知道如何接受输入以及如何显示输出。然而,我想要做的远远超过我的Java知识。 (如果它是尽可能的话。)我希望当我的兄弟在文本字段中键入内容然后按下按钮时,文本区域中将显示完全不同的文本。我希望能够为每个字母分配不同的字母或字母组合。这样,每次他使用字母“i”时,它总是会显示“ti”。我希望输出完全是胡乱和有趣的阅读。如果可以这样做,请帮我分配,并为每个字母输出不同的设定值。我对编码很新,所以请加入示例。
提前致谢。
(我还没有插入代码,因为我还没有在计算机上开始编码。我想确保在开始努力工作之前就可以完成。:))
答案 0 :(得分:3)
完全胡言乱语比定义难以定义。换句话说,在实现翻译模式之后,它看起来不像“完全乱码”。用你的例子来解释,看起来所有“我”都被翻译成“ti”。
也就是说,您可以轻松地执行一些涉及“输入”数据集“映射”到“输出”字符集的操作。像
这样的东西i -> ti
j -> kj
l -> vn
等等。然后,您一次“替换”输入一个字符的输入。如果您仔细选择输入“地图”的“右侧”,您甚至可以“反转”地图,或者做一个向后翻译。不是每个地图都可以颠倒过来,但是这个练习可以让你很好地理解关键数学(不是数字意义上的)概念。
手动翻译至少五次(或更多次)。专注于您手动执行此操作所遵循的步骤,因为它们将成为您在程序中“编码”所需的步骤。可能性看起来像这样(但不要相信我的话,为自己发现它)
当您遇到困难时,请随时发布更多问题。尝试将问题保持特定并提供代码示例。要充分利用问题,请遵循"How to ask good questions"的建议。这样做会给你最大的帮助。
答案 1 :(得分:1)
创建一个Map<Character, String>
,其中包含每个字符的替换文字。迭代输入字符串的所有字符,并将地图中找到的替换附加到StringBuilder
。
这是一些代码。您只需要向地图添加其他替换项:
import java.util.HashMap;
import java.util.Map;
public class Gibberish {
public static void main(String[] args) {
System.out.println(gibberish("Hi, I'm Jim"));
}
public static String gibberish(String input) {
Map<Character, String> replacements = new HashMap<Character, String>();
replacements.put('i', "ti");
// ...
StringBuilder output = new StringBuilder();
for (char c : input.toCharArray()) {
String replacement = replacements.get(c);
// if no replacement, we keep the character
if (replacement == null) {
output.append(c);
}
else {
output.append(replacement);
}
}
return output.toString();
}
}