【发布时间】:2016-01-26 03:40:08
【问题描述】:
我有一个任务。我已经完成了任务的所有部分。但我对我的以下部分任务感到震惊。你能帮帮我吗
作业指南
III.为 EncryptedNode 类编写一个构造方法。此构造函数应将 String 作为参数。 与您编写的其他构造函数不同,此构造函数应该有条件地运行。如果消息是一个字符长,只需将该字符分配给 letter 实例变量。如果消息有两个字符长,则将第一个字符分配给该字母,将另一个字符作为字符串分配给右侧的 EncryptedNode。其他情况,求输入String的中间值,将第一个索引处的字符赋给letter,characters
从1到中间的字符应该去右边的EncryptedNode,剩下的无人认领
字符应该去左边的EncryptedNode。注意:您将从中实例化新的 EncryptedNode 对象 这个构造函数,从而创建了一个递归构造。
四。编写如下方法:
一个。解密方法不接受任何参数并返回一个字符串。此方法应通过递归添加每个 EncryptedNode 的字母、左右元素来重新构建原始未加密的字符串。这个过程将留给您解决。
我的示例代码是
class EncryptedNode {
public EncryptedNode left, right ;
public char letter ;
// EncryptedNode Class constructor method.
public EncryptedNode (String message) {
// get String length
int message_length = message.length() ;
if (message_length == 1) {
this.letter = message.charAt(0) ;
}else if (message_length == 2) {
this.letter = message.charAt(0) ;
this.right = new EncryptedNode (message.substring(1));
} else {
this.letter = message.charAt(0) ;
// get the middle index of the message string.
int middle_index = message.substring(1).length() /2 ;
// get left and right strings
String rightStr = message.substring(1,middle_index+1);
String leftStr = message.substring(middle_index+1);
this.left = new EncryptedNode (leftStr);
this.right = new EncryptedNode (rightStr);
}
System.out.println (this.letter);
// System.out.println (this.right);
}
public static void main (String [] args) {
EncryptedNode en = new EncryptedNode("ABCDEF") ;
en.decrypt();
}
public String decrypt () {
if (this.left == null && this.right==null) {
return this.letter;
}else if (this.left == null && this.right != null) {
return this.letter + this.right;
}else if (this.left !=null && this.right != null) {
return this.left + this.letter + this.right;
}
}
}
【问题讨论】:
-
我遇到了错误。需要修复它们。我需要以字符串格式返回解密消息
标签: java string encryption