【问题标题】:Java: Turning group of characters into single StringJava:将一组字符转换为单个字符串
【发布时间】:2013-04-17 03:27:15
【问题描述】:

我一直在尝试制作一个允许我加密用户名和密码并打印结果的程序。我可以让它工作,但我想将循环中出现的字符排序为一个字符串,以便于管理。有什么建议吗?

System.out.println("\nYour encrypted username is " );

    for(char c : namech)
    {
        int temp = (int)c;
        int namecode = 0;

        //makes the characters w,x,y,z loops back to the start of the alphabet
        if(temp<=90 & temp>=65)
        {
            namecode = temp+4;

            if(namecode == 91)
            {
                namecode = 65;
            }
            else if(namecode == 92)
            {
                namecode = 66;
            }
            else if(namecode == 93)
            {
                namecode = 67;
            }
            else if(namecode == 94)
            {
                namecode = 68;
            }

            int i = namecode;

            char d = (char)i;


            System.out.print(d);



        }

【问题讨论】:

  • 有什么理由在源代码中使用整数而不是字符文字?后者会让生活更加更简单......
  • 你可以将一个字符附加到一个字符串..

标签: java string loops char character


【解决方案1】:

我想把循环出来的字符排序成一个字符串

最简单的方法可能是将整个东西变成char[],然后将其转换回字符串:

char[] chars = namech.toCharArray();
for (int i = 0; i < chars.length(); i++) {
    chars[i] = obfuscateCharacter(chars[i]);
}
String obfuscated = new String(chars);

... 其中obfuscateCharacter 基本上是当前循环的主体,但提取到处理单个字符的方法中,这更容易测试等。(我拒绝称它为encryptCharacter,因为这给出了一个安全感:)

【讨论】:

    【解决方案2】:

    我会使用 StringBuilder 并在加密时附加每个字符。简单高效的串联。即。

    StringBuilder sb = new StringBuilder();
    
    for (char c : namech)
    {
        // ... your code was here
        sb.append(d);
    }
    
    System.out.println(sb.toString());
    

    【讨论】:

      【解决方案3】:
      String result = null;
      int j = 91;
      int k = 92;
      
      result = String.valueOf((char)j);
      result += String.valueOf((char)k);
      

      顺便说一句,这看起来是一个使用 Switch 语句而不是多个 if、else if.... 的完美场所。

      【讨论】:

        【解决方案4】:

        以防万一您真的需要加密数据,您自己很难做到。一般来说,手动加密并不是一个好主意,而是使用更受信任的加密方案。

        请参阅 https://stackoverflow.com/questions/2430412/what-java-library-should-i-use-for-cryptography 中提到的 Bouncy Castle API http://www.bouncycastle.org/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-14
          • 1970-01-01
          • 2019-10-17
          • 1970-01-01
          • 2015-11-24
          相关资源
          最近更新 更多