如何修改代码以接受用户输入?



我有使用凯撒密码加密短语的工作代码,但这是预先确定的输入(HELLOWORLD和4作为sift)。

我想做的是让用户可以选择自己的输入和移位

更具体的格式是:

。$java Caesar 3 HELLOWORLD

"HELLOWORLD">

移位3次
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
int i = scanner.nextInt();

问你的问题,然后用户在控制台输入结果。

要使用命令行参数,只需使用args[0]args[1]等。在你的例子中,helloworld;- 3为args[0], HELLOWORLD为args[1]

由于shift是一个整数,您必须对其进行解析,将其从字符串转换为整数。为了改进代码,您应该捕获输入的字符串无法转换时的任何错误。

public static StringBuffer rotate(int shift, String plainText){
StringBuffer result= new StringBuffer();
for (int i=0; i<plainText.length(); i++){
if (Character.isUpperCase(plainText.charAt(i))){
char ch = (char)(((int)plainText.charAt(i) + shift - 65) % 26 + 65);
result.append(ch);
}
else{
char ch = (char)(((int)plainText.charAt(i) + shift - 97) % 26 + 97);
result.append(ch);
}
}
return result;
}

public static void main(String[] args){
String plainText = args[1];
int shift = Integer.parseInt(args[0]);
System.out.println("Text  : " + plainText);
System.out.println("Shift : " + shift);
System.out.println("Cipher: " + rotate(shift, plainText));
}

这是使用您提到的参数后的输出

最新更新