【发布时间】:2020-02-09 21:08:47
【问题描述】:
程序应该提示用户选择是对消息进行编码还是解码,然后提示用户输入消息。空格用于分隔消息中的每个单词,句点 (.) 用于表示句子的结尾。必须使用单独的方法对输入消息进行编码和解码。
方案:A -> Z, B -> Y, C -> X, .... X -> C, Y -> B, Z -> A
我认为除了编码和解码方法的逻辑之外一切都很好。
import java.util.Scanner;
public class Project1
{
public static void main( String [] args )
{
Scanner input = new Scanner(System.in);
System.out.println(" ");
System.out.print( "Press 1 for Encoding, 2 for Decoding: " );
int x = input.nextInt();
String temp = input.nextLine();
System.out.println(" ");
System.out.print( "Enter message: ");
String message = input.nextLine();
System.out.println(" ");
if ( x == 1)
{
encodeMessage( message );
}
else if ( x == 2 )
{
decodeMessage( message );
}
else
System.out.print("Invalid response");
}
public static void encodeMessage(String message)
{
for (int i = 0; i < message.length(); i++)
{
char x = message.charAt(i);
System.out.print((char)(27 - x));
}
}
public static void decodeMessage (String message)
{
for (int i = 0; i < message.length(); i++)
{
char x = message.charAt(i);
System.out.print((char)(27 - x));
}
}
}
当我输入消息时,它会显示问号。
【问题讨论】:
-
例如,您如何得出“27 - x”会将“A”转换为“Z”的结论?
-
试过调试器?
-
我看到了一个使用 (char)(x + 1) 的示例,它在 x 之后显示了字母。我假设代码在考虑 a = 1,b = 2,c =3... 等等。所以如果字母是 a(即 1),我可以只做 27 - 1,这将显示 z。如果这听起来很愚蠢,我是一个初学者,很抱歉。
标签: java string encoding decoding