Java 将输入扫描到char数组中

Java 将输入扫描到char数组中,java,arrays,string,list,java.util.scanner,Java,Arrays,String,List,Java.util.scanner,我试图将输入存储为 5 3DRP 3QEW 8AQW 9ADA 我想把那个输入作为复制粘贴读进去,然后把它放进去。我试过这个: public static void main(String[] args) { Scanner scan = new Scanner(System.in); String userNumber; userNumber = scan.nextLine(); String[] tokens = userNumber.split("[

我试图将输入存储为

5 
3DRP 3QEW
8AQW 9ADA
我想把那个输入作为复制粘贴读进去,然后把它放进去。我试过这个:

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    String userNumber;
    userNumber = scan.nextLine();
    String[] tokens = userNumber.split("[ ]");
    System.out.println(tokens[1]);
    for(int i = 0; i < tokens.length;i++) {
        System.out.println(tokens[i]);
    }
    scan.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
字符串用户号;
userNumber=scan.nextLine();
String[]tokens=userNumber.split(“[]”);
System.out.println(令牌[1]);
for(int i=0;i

我的目标基本上是将输入作为复制粘贴读入IDE或通过文件a.txt,然后将除空格外的每个字符存储到一维或二维字符数组中。

据我所知,您需要从控制台读取3行,删除该文本中的所有空格,并将其存储为
char
数组

如果是这种情况,以下是您可以做到的:

    int numberOfLinesToRead = 3;
    try(Scanner sc = new Scanner(System.in)){
        StringBuilder buff = new StringBuilder();
        while(numberOfLinesToRead-- > 0){
            String line = sc.nextLine();
            String noSpaces = line.replaceAll("\\s", "");
            buff.append(noSpaces);
        }
        char[] characters = buff.toString().toCharArray();
        System.out.println(Arrays.toString(characters));
    }catch (Exception e) {
        e.printStackTrace();
    }

你面临什么问题?除了
拆分([])。除此之外:不要使用scanner.close(),因为它将关闭System.in stream。@nullpointer我想读取整行代码,但复制粘贴时它只读取第一行。我只想读取实际的ASCII码,而不是空格,在这种情况下,空格包括在内。除了自动关闭流之外,使用
try with resources
还有什么特殊原因吗?对我来说似乎有点过分了,因为扫描仪不会抛出任何检查结果exceptions@ChandlerBing这只是一个习惯,在改变流程时很有用。如果我将
系统更改为
文件输入流
@Titus,则无需修改。如果我不知道要读取的行数,该怎么办?@Peerless,您必须找到停止的方法,并将其设置为循环的条件。例如,当您在控制台中输入类似于
stop
的内容时,可以停止读取行。如果要执行此操作,可以在(!line.equals(“stop”)
期间将循环的条件更改为此
,并在loop@Titus您不应该关闭扫描仪,因为它还会关闭System.in,而System.in根本不应该关闭。