Hello项目我必须加密和解密txt文件。一切都工作正常,程序正是我想要的,我只是好奇是否有办法简化它的一部分
int first;
int second;
int third;
int fourth;
long M = 0;
if (toDecrypt.length() == 4) {
first = ((toDecrypt.charAt(0) - '0') * 1000);
second = ((toDecrypt.charAt(1) - '0') * 100);
third = ((toDecrypt.charAt(2) - '0') * 10);
fourth = toDecrypt.charAt(3) - '0';
M = first + second + third + fourth;
}
if (toDecrypt.length() == 3) {
first = ((toDecrypt.charAt(0) - '0') * 100);
second = ((toDecrypt.charAt(1) - '0') * 10);
third = toDecrypt.charAt(2) - '0';
M = first + second + third;
}
if (toDecrypt.length() == 2) {
first = ((toDecrypt.charAt(0) - '0') * 10);
second = toDecrypt.charAt(1) - '0';
M = first + second;
}
long temp = M;
本节所做的是逐行接收我的加密文件,这些文件包含数字并对其进行解密。该线可以有每行2-4个数字。就像我说代码工作完美我只是好奇,如果我能够简化这个,或者如果我正在思考它,如果它工作,不打扰改变它。我想我的整体问题是在现实世界中,编码人员/程序员是否试图使他们的程序更加简化,或者首先他们使用的选项是什么?
答案 0 :(得分:3)
这样的事情怎么样:
long M = 0;
int hash = 1;
for(int i = toDecrypt.length() - 1 ; i >= 0; i--)
{
M += (toDecrypt.charAt( i ) - '0') * hash;
hash *= 10;
}
如果您只是尝试从文件中读取数字,您是否考虑使用类似Scanner
的内容?您可以使用nextInt()
函数从文件中获取每个数字。您的循环似乎只是将String
转换为数字,对吧?