Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-根据用户输入从+或-计算更改_Java_Netbeans 8 - Fatal编程技术网

Java-根据用户输入从+或-计算更改

Java-根据用户输入从+或-计算更改,java,netbeans-8,Java,Netbeans 8,使用java创建caeser密码一个程序,该程序可以在字母表中上下移动字符进行加密或解密。要加密/解密程序,应使用+或-的数字。我已经让程序工作添加,但我想知道是否有一种方法可以简单地将计算器操作从+更改为-如果用户选择了encrypt或decrypt 代码如下: number = number + offsetInput; messageArray[i] = (char) number; 在这段代码之前,用户输入“e”进行加密或输入“d”进行解密,是否有办法使

使用java创建caeser密码一个程序,该程序可以在字母表中上下移动字符进行加密或解密。要加密/解密程序,应使用+或-的数字。我已经让程序工作添加,但我想知道是否有一种方法可以简单地将计算器操作从+更改为-如果用户选择了encrypt或decrypt

代码如下:

        number = number + offsetInput;
        messageArray[i] = (char) number;

在这段代码之前,用户输入“e”进行加密或输入“d”进行解密,是否有办法使+/-根据此输入进行更改?我知道如果+/-是一个字符串,你会怎么做,但是,它显然不是一个字符串。如果我的想法能够实现,那就意味着我的程序可以更短,并且不需要对If语句进行两次可能的计算

有很多方法可以解决这个问题。我认为最简单的方法是:

number = number + offset * multiple;
在哪里

multiple = input.equals("e") ? 1 : -1;
这里使用的三元运算符意味着,如果输入为“e”,我们将增加,否则,将减少偏移量。我们也可以写

multiple = input.equals("e") ? 1 : input.equals("d") ? -1 : 0;
用于输入验证

Put

if (input.equals("d")) {
    offsetInput = - offsetInput;
}
在循环之前。这是假设输入是一个字符串。如果它是一个字符,那么它应该是

if (input == 'd') {

根据encode或decode的选择,添加1或-1的变量。然后将你在角色上加上或减去的值乘以这个值,我甚至没有想到乘以1或-1,这是一个相当简单的解决方案,向你致敬!谢谢