我必须编写一个程序,用java加密单字母字母密码。
我的简单程序从txt文件读取并保存到char数组。
在数组程序中,我总结了具有合适索引的字母数并对其进行排序。
但是下一个排序索引字符与字母数不匹配。
现在我不知道接下来该做什么可以帮忙吗?
解决方案应该比较两个数组的字母数并替换它。 例如 文件1 .......文件2 {a,b,c,d} ..... | {g,e,f,h} {22,12,10,7} | {12,6,4,3}
替换:g - > a E-&GT,B
package szyfr;
import java.io.*;
import java.util.Arrays;
public class Szyfr {
public static void main(String[] args) throws IOException {
String file1 = "C:file.txt";
String file2 = "C:file2.txt";
odczyt(file1, file2);
}
static void odczyt(String file1, String file2) throws IOException {
// wiersz po wierszu
BufferedReader filein1 = null;
BufferedReader filein2 = null;
try {
filein1 = new BufferedReader(new FileReader(file1));
filein2 = new BufferedReader(new FileReader(file2));
int[] arr1 = new int[26];
String str;
while ((str = filein1.readLine()) != null) {
str.toCharArray();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
arr1[str.charAt(i) - 'a']++;
}
}//43752 7770
}
filein1.close();
System.out.print(Arrays.toString(arr1));
int[] arr2 = new int[26];
String str2;
while ((str2 = filein2.readLine()) != null) {
str2.toCharArray();
for (int i = 0; i < str2.length(); i++) {
if (str2.charAt(i) >= 'a' && str2.charAt(i) <= 'z') {
arr2[str2.charAt(i) - 'a']++;
}
}//43752 7770
}
System.out.println(" ");
System.out.println("second : ");
System.out.print(Arrays.toString(arr2));
System.out.println();
System.out.println();
int[] att;
int[] replaces;
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
for (int i = 0; i < arr2.length; i++) {
arr2[i] = arr1[i];
}
System.out.println("second: " + Arrays.toString(arr2));
//////
filein1 = new BufferedReader(new FileReader(file1));
int[] tab3 = new int[26];
System.out.println("next arrays " + Arrays.toString(tab3));
} finally {
if (filein1 != null) {
filein1.close();
}
if (filein2 != null) {
filein2.close();
}
}
}
}