【发布时间】:2019-03-19 04:34:10
【问题描述】:
我正在尝试构建一个程序,该程序采用文本文件,应用 CaesarCipher 方法并返回和输出文件。
import java.util.*;
import java.io.*;
class CaesarCipher
{
public static void main (String [] args) throws FileNotFoundException {
System.out.print("What is the input file name? ");
Scanner keyboard = new Scanner(System.in);
String fileName = keyboard.nextLine();
Scanner inputFile = new Scanner (new File (fileName));
String inputFileString = inputFile.toString();
System.out.print("What is the input file name? ");
int s = 4;
System.out.println("Text : " + inputFileString);
System.out.println("Shift : " + s);
System.out.println("Cipher: " + encrypt(inputFileString, s));
}
public static String encrypt(String inputFileString, int s) {
StringBuilder result = new StringBuilder();
for (int i=0; i< inputFileString.length(); i++) {
if (Character.isUpperCase(inputFileString.charAt(i))) {
char ch = (char)(((int)inputFileString.charAt(i) + s - 65) % 26 + 65);
result.append(ch);
}
else {
char ch = (char)(((int)inputFileString.charAt(i) + s - 97) % 26 + 97);
result.append(ch);
}
}
return result.toString();
}
}
我有两个问题: 1-程序正在编译,但是当我运行它并输入文本文件名时,我收到此错误:
输入文件名是什么?文本 : java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match 有效=假][需要输入=假][来源 关闭=false][跳过=false][组分隔符=\,][十进制 分隔符=.][正前缀=][负前缀=\Q-\E][正 后缀=][负后缀=][NaN字符串=\Q�\E][无穷大字符串=\Q∞\E]
2- 如何构造一个包含编码文本的新输出文件?
【问题讨论】:
标签: java caesar-cipher