我应该在Java中创建一个程序,该程序从用户获取大写字母,从ASCII代码中减去2并输出结果字母。线索是我只应输出A-Z中的字母,这意味着在Z再次从A开始。 做这个的最好方式是什么?如果达到某个值,删除26的显而易见的方法似乎不合适。
希望有人可以帮助我。提前谢谢!
答案 0 :(得分:0)
Java中的Chars可以被视为数字,您可以对它们执行普通算术。 'A'的字节值等于65(即在ASCII表中,大写A是第65个ASCII表,大写B是66,等等)。我写了一些简单的代码,分解了所需的步骤:
letter = (letter - 65);
letter = (letter - 2);
if (letter < 0) letter = letter + 26;
letter = letter + 65;
第一行减去ASCII表中'A'的位置。这意味着'A'变为0,'B'变为1,等等。下一行减去两行,下一行确保它“循环”到字母表的末尾,如果 减法导致它变为负面。最后一行将65添加回字母,并将其返回ASCII表中的大写字母。