【问题标题】:How to replace several characters on a single string to desired characters (java)?如何将单个字符串上的多个字符替换为所需的字符(java)?
【发布时间】:2013-06-14 09:18:21
【问题描述】:

我制作了自己的加密方式。现在我需要将该加密应用于 android 应用程序。有人可以告诉我,如果您有消息(字符串)如何将其字符替换为所需的字符。

例如 在我的加密方法中,A=Z B=X C=Y(例如 jst)。因此,当有人在文本框中输入文本“CAB”时,输出应为“(Y,Z,X)”,并且必须由应用程序添加逗号和括号。

如果有人对此有任何想法,请帮忙。 Thnq 非常多。 (UI尚未设计,请随意使用UI元素)

【问题讨论】:

  • 你试过了吗?听起来没那么难。
  • @KarthikT 我不知道从哪里开始。我是 java 和 android 的新手。请帮忙!非常感谢。
  • 一次想一个,暂时忘记UI,先替换字符(将新字符存储在一个用旧字符索引的数组中),括号和逗号可以稍后出现。这是基本的 java 和 android 在你进入 UI 之前是无关紧要的。
  • @KarthikT 你能给我一些编码吗? (实际上没有括号真的很难理解)thnx!
  • 我不得不说简单的“为我编写代码”类型的问题在这个网站上并没有得到很好的接受。我建议你买一本关于 Java 编程的简单书(或在线教程),然后先尝试一下。让代码输出正确的答案可能是一种非常令人振奋的体验,我不想否认它。

标签: java android string multithreading encryption


【解决方案1】:
public class TranslateChar {

    /** @param args */
    public static void main(final String[] args) {
        final Map<Character, Character> mapCharCod = new HashMap<>(36);
        final Map<Character, Character> mapCharDecod = new HashMap<>(36);
        mapCharCod.put('A', 'Z');
        mapCharCod.put('B', 'X');
        mapCharCod.put('C', 'Y');
        mapCharDecod.put('Z', 'A');
        mapCharDecod.put('X', 'B');
        mapCharDecod.put('Y', 'C');

        final String toCod = "CAB";
        StringBuilder sb = new StringBuilder("{");
        for (final char c : toCod.toCharArray()) {
            sb.append(mapCharCod.get(c));
            sb.append(',');
        }
        sb.setCharAt(sb.length() - 1, '}');
        System.out.println(sb.toString());

        final String deCod = "{Y,Z,X}";
        sb = new StringBuilder();
        for (final char c : deCod.toCharArray()) {
            if (c == '{' || c == ',' || c == '}') {
                continue;
            }
            sb.append(mapCharDecod.get(c));
        }
        System.out.println(sb.toString());
    }
}

输出:

{Y,Z,X}
CAB

【讨论】:

  • 这太甜了!同样的方式你可以告诉我如何解码。有什么限制吗?我的意思是如果例如“D = ab”可以这样做吗?
  • @AACaN 您在此代码中有 decode。如果你想使用字符串,你必须使用像Map&lt;String, String mapCharCod = new HashMap&lt;&gt;();这样的表和双代码:tab.put("A","Z"); tab.put("ab","r");,你也可以在映射键中使用String.toLowerCase()String.toUpperCase()方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2019-05-11
  • 2018-05-02
  • 2011-09-01
  • 2015-03-15
相关资源
最近更新 更多