【问题标题】:Having trouble with what to write as my return?不知道写什么作为我的回报?
【发布时间】:2015-10-12 21:22:18
【问题描述】:

我正在写一个凯撒加密方法。对于原始字符串的每个字符,我希望我的方法将字符移动三个。例如,“A”转移到“D”等等。现在我想将所有移位的字符组合成一个字符串(加密消息)并返回它。

我如何编写语句来组合字符然后返回它。

【问题讨论】:

  • 如果您删除代码,答案没有任何意义。

标签: java


【解决方案1】:

您必须连接所有字符以形成一个字符串。然后返回字符串。

首先你声明一个字符串对象:

String result ="";

在 for 循环中,在 if-else 语句之后,将移位后的字符添加到结果字符串中:

result = result + t;

然后最后(在 for 循环之外)返回结果字符串:

return result;

如果你想使用 StringBuilder:

  1. 创建一个 StringBuilder 对象:

    StringBuilder builder = new StringBuilder();

  2. 附加字符:

    builder.append('a');

    char t = 'b'; builder.append(t);

  3. 转换为字符串并返回:

    return builder.toString();

【讨论】:

  • 请注意,您应该使用StringBuilder 在循环内连接字符串,以避免创建多个 String 实例造成性能损失。
  • 如果字符串的长度没有限制,如何连接所有字符?
  • 您正在为原始消息的长度运行循环。它将迭代并连接所有字符。 @JiriTousek:感谢您的指出。
  • @Osmani 我尝试了所有方法,它告诉我它找不到变量 t,当我将 return 语句放在循环之外时,它告诉我这是一个“非法类型的开始”跨度>
  • 您必须在 for 循环之前的开头声明字符串结果。我将编辑答案以使其更有意义。
【解决方案2】:

要返回加密消息,您可以使用该消息递归调用您自己的方法。确保您有条件何时应该返回null(或者在这种情况下是您自己的消息)。 您的循环的一个小问题是您只是将 char t 移动但不替换为字符串或返回字符串。您应该将结果存储在某个地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    相关资源
    最近更新 更多