无法理解这里的代码行

时间:2018-03-14 06:55:53

标签: java

String msg = "This is a test";
int key = 88;    
String encmsg = ""; //What does this empty quotes "" means
for(int i=0; i<msg.length(); i++)
  encmsg = encmsg + (char)(msg.charAt(i)^key); //what does this encmsg + does

为什么我不能使用

直接将字符存储在encmsg
encmsg = (char)(msg.charAt(i)^key);

2 个答案:

答案 0 :(得分:2)

这段代码似乎将消息section { margin-top: 100px; /* the gap between top navigation above */ text-align: center; } .img1, .img2, .img3 { display: inline-block; vertical-align: top; width: 250px; height: auto; margin: 0 1%; padding: 0; } article img { width: 100%; height: 100%; margin: 0; padding: 0; } article dl { display: block; width: 100%; margin-top: 10px; text-align: left; } article dt { font-size: 0.9em; font-weight: 400; } article dd { margin-left: 0; font-size: 0.9em; font-weight: 300; } 编码为编码消息msg

您在伪代码中创建编码字符串的方式如下:

  1. 以空encmsg
  2. 开头
  3. encmsg中的每个字符c
    1. 计算msgc
    2. 的按位异或
    3. 将结果转换为字符
    4. 将字符添加到key
    5. 的末尾
  4. 第1步说明了为什么需要初始化encmsg。如果您遗漏了encmsg,那么您无法在步骤5中将任何内容连接到它,因为它没有值。

    现在应该清楚为什么需要""位。您循环遍历encmsg +的每个字符并对每个字符进行编码。然后将每个编码字符附加到结果中以形成完整的编码字符串。如果它是这样编写的,你可能会更好地理解它:

    msg

    由于您在循环中连接字符串,如果您使用encmsg += (char)(msg.charAt(i)^key); 代替字符串会更快:

    StringBuilder

答案 1 :(得分:0)

对于String encmsg = "";,请按照link

进行操作

在这一行中, encmsg = encmsg + (char)(msg.charAt(i)^key);//what does this encmsg + does +用于合并(追加)数据以创建字符串。

此外,您无法使用此替换上述行,因为encmsg = (char)(msg.charAt(i)^key);以下内容用于指定值。

而目的是附加数据以创建字符串。