Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 - Fatal编程技术网

Java 使用带空格的字符串,将其拆分为单个字符,并将其添加到字符列表中

Java 使用带空格的字符串,将其拆分为单个字符,并将其添加到字符列表中,java,Java,好的,我正在尝试用java制作一个Caesar密码,我正在尝试使用python方法,我以前使用过这种方法,在这里,您获取用户输入,检查主字符串“alphabet”中是否有任何字母,然后使用shift值查找字符的当前索引,然后向其添加移位值,然后将当前字符添加到新字符串“EncryptedMessage”中 我似乎不知道如何转换用户输入的字符串,将其拆分为单个字符,并将其添加到带有空格的“chars”列表中 我曾尝试使用for循环执行此操作,然后打印出结果,但它总是在用户输入的字符串中出现空白时停

好的,我正在尝试用java制作一个Caesar密码,我正在尝试使用python方法,我以前使用过这种方法,在这里,您获取用户输入,检查主字符串“alphabet”中是否有任何字母,然后使用shift值查找字符的当前索引,然后向其添加移位值,然后将当前字符添加到新字符串“EncryptedMessage”中

我似乎不知道如何转换用户输入的字符串,将其拆分为单个字符,并将其添加到带有空格的“chars”列表中

我曾尝试使用for循环执行此操作,然后打印出结果,但它总是在用户输入的字符串中出现空白时停止

谁能帮我下一步做什么。另外,我是一个新的java程序员,所以请尽量不要给出一个真正复杂的代码来解决它

import java.util.Scanner;
import java.util.ArrayList;
public class CaesarCipher {
    protected final static String alphabet = "abcdefghij klmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.'(){}[]";
    public static void main(String[] args) {
        //Declares the scanner class that is used to read the user's input from the keyboard
        Scanner input = new Scanner(System.in);
        //Asking the user for a shift value for encryption
        System.out.println("Please enter a shift value:");
        int shiftVal = input.nextInt();
        //Asks the user for a string that they want to be encrypted
        System.out.println("Please enter the message that you want to be encrypted:");
        String msg = input.next();
        //A String that will store the encrypted message
        String encryptedMsg = "";
        ArrayList<Character> chars = new ArrayList<>();
        }
      }
import java.util.Scanner;
导入java.util.ArrayList;
公共类密码{
受保护的最终静态字符串字母表=“abcdefghij klmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.”({}[]);
公共静态void main(字符串[]args){
//声明用于从键盘读取用户输入的扫描程序类
扫描仪输入=新扫描仪(System.in);
//询问用户加密的移位值
System.out.println(“请输入移位值:”);
int shiftVal=input.nextInt();
//要求用户输入他们想要加密的字符串
System.out.println(“请输入要加密的消息:”;
字符串msg=input.next();
//将存储加密消息的字符串
字符串encryptedMsg=“”;
ArrayList chars=新的ArrayList();
}
}

您可以通过将字符串拆分为字符,然后按如下方式移动它们:

int shiftVal = 5;
String whatever = "dfsfsdf";
char[] whateverArr = whatever.toCharArray();
for (int i = 0; i < whateverArr.length; i++) {
    whateverArr[i] += shiftVal;
}
String whateverEnc = String.valueOf(whateverArr);

我还没有测试哪一个更快,但我认为差异应该很小。

您可以使用从扫描仪读取输入或加密来查看确切的问题是什么?(您使用过调试器吗?)“我正在尝试使用python方法”请小心。有时方法会在不同的语言之间交叉,有时则不会。我假设您需要一个字符列表,以便可以对它们进行迭代并应用密码。如果是这样的话,那么请查看一种不列出清单的方法。
char[] whateverArr = new char[whatever.length()];
for (int i = 0; i < whateverArr.length; i++) {
    whateverArr[i] = (char) (whatever.charAt(i) + shiftVal);
}
String whateverEnc = String.valueOf(whateverArr);