【问题标题】:Java ASCII encodingJava ASCII 编码
【发布时间】:2015-11-22 22:02:59
【问题描述】:

我有一个关于 ASCII 和编码的快速问题。我希望从用户那里获取输入 - 例如:“cat” - 并将其转换为代码。代码如下:

  1. 所有小写字母都转换为大写字母。
  2. 编码消息中的第一个字母被存储为它的 ASCII 码值。
  3. 所有后续字母都表示为当前字母与前一个字母之间的偏移量。

例如:“cat” = 67 -2 19,因为“C” = 67,“A”与“C”相距 -2 个字母,“T”与“A”相距 19 个字母。任何帮助将不胜感激!

【问题讨论】:

  • 你真的尝试过什么吗?
  • 你试过什么?提示,查看Character 类中的方法。

标签: java ascii


【解决方案1】:
Scanner input = new Scanner(System.in);
String s = input.next().toUpperCase();
int ascii = s.charAt(0);
System.out.println(ascii);
for (int i = 1; i < s.length(); i++) {
    ascii = s.charAt(i - 1);
    System.out.println(s.charAt(i) - ascii);
}
  1. 要转换为大写字母,可以使用 toUpperCase() 方法返回所有大写字母的字符串。
  2. 要获取字母的 ASCII 码,您只需创建一个整数并为其分配所需的字符(在本例中为字符串的第一个字母,即 int ascii = s.charAt(0);)。
  3. 要获取偏移量,您可以使用从 1(第二个字母)开始的 for 循环,在其中获取前一个字符的 ASCII 码并从当前字符中减去它。

【讨论】:

  • 请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。
  • @Tolen 您注意到您的结果与 OP 的期望不符,对吧?
  • 感谢您的帮助,非常感谢!我唯一的问题是 - 如果我把它变成它自己的方法,我会为返回值做什么?
  • @JakePetersen 您可以使用 int 数组:而不是打印将其存储在数组中然后返回的值
猜你喜欢
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多