这种方法到底如何工作?这是一种转换字符的方法。我不明白如何使用“ a”从c中减去。全部都保存为数字了吗?在这种情况下%= 26会做什么?
private char shift(char c)
{
int letter = c-'a';
letter+= shift;
letter %=26;
return (char) ('a'+ letter);
}
C和Java中的字符可以作为非常短的数字来处理。但是被视为一个字符,它编码一个ASCII字符。
letter %=26;
只是的简短表达
letter = letter % 26;
%是取模运算,并按参数除以返回提示。
您的代码执行以下操作
private char shift(char c) {
int letter = c-'a'; // calculate distance to 'a'
letter+= shift; // add some distance
letter %=26; // handle overflow - if shifted behind 'z'
return (char) ('a'+ letter); // apply calculated distance to 'a' to get output
// and cast it to type char.
}
似乎是塞萨尔·奇弗尔的一种实施。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句