2013-04-23 43 views
0

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

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); 



     } 
+0

你会使用整数,而不是在源代码中使用字符文字的任何理由提到?后者会使生活*更简单... – 2013-04-23 19:17:45

+0

您可以将一个字符附加到一个字符串.. – Maroun 2013-04-23 19:18:10

回答

1

我会使用StringBuilder并在加密时追加每个字符。简单而有效的连接。 IE浏览器。

StringBuilder sb = new StringBuilder(); 

for (char c : namech) 
{ 
    // ... your code was here 
    sb.append(d); 
} 

System.out.println(sb.toString()); 
3

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

最简单的方法字符排序可能是把整个事情变成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,让安全:)

0
String result = null; 
int j = 91; 
int k = 92; 

result = String.valueOf((char)j); 
result += String.valueOf((char)k); 

顺便说一句,这看起来像做使用switch语句,而不是多一个完美的地方的印象如果,否则如果...