Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Parsing - Fatal编程技术网

从输入java解析不同类型的数据

从输入java解析不同类型的数据,java,arrays,parsing,Java,Arrays,Parsing,将在命令行上输入不同的数据列表 "J,A,V,A" "4,H,11,V,3,H" 我需要将第一个列表存储在一个字符数组中。我还想在字符数组“H,V,H”和int数组“4,11,3”中有下一行。做这件事最好的方法是什么?我很犹豫是否用逗号分隔,因为我不知道输入是用逗号分隔,还是用逗号和空格分隔。我有困难,因为当我使用扫描器时,所有的东西都保持在一个字符串中,当我尝试拆分它时,字符串变成一个字符串数组 我遇到了困难,因为当我使用扫描仪时,所有的东西都保持在一个字符串中,当我尝试拆分它时,字符串变成

将在命令行上输入不同的数据列表

"J,A,V,A"
"4,H,11,V,3,H"
我需要将第一个列表存储在一个字符数组中。我还想在字符数组“H,V,H”和int数组“4,11,3”中有下一行。做这件事最好的方法是什么?我很犹豫是否用逗号分隔,因为我不知道输入是用逗号分隔,还是用逗号和空格分隔。我有困难,因为当我使用扫描器时,所有的东西都保持在一个字符串中,当我尝试拆分它时,字符串变成一个字符串数组


我遇到了困难,因为当我使用扫描仪时,所有的东西都保持在一个字符串中,当我尝试拆分它时,字符串变成了一个字符串数组。

以下内容似乎对我有用。。只在调试器中运行它,但它在您提供的两行输入上工作

import java.lang.System;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    ArrayList<Integer> ints = new ArrayList<Integer>();
    ArrayList<Character> chars = new ArrayList<Character>();

    Scanner console = new Scanner(System.in);

    while (console.hasNext()) {
        String line = console.next();
        String[] tokens = line.split("\\s*,\\s*");

        for (int i = 0; i < tokens.length; i++) {
        if (isInteger(tokens[i])) {
            ints.add(Integer.parseInt(tokens[i]));
        } else if (isChar(tokens[i])) {
            chars.add((char) tokens[i].indexOf(0));
        }
        }

    }
    console.close();

    }

    private static boolean isInteger(String s) {
        try {
            Integer.parseInt(s);
        } catch (NumberFormatException e) {
            return false;
        }
        // only got here if we didn't return false
        return true;
    }

private static boolean isChar(String s) {
if (s.length() != 1) {
    return false;
}
return true;
}
导入java.lang.System;
导入java.util.ArrayList;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
ArrayList ints=新的ArrayList();
ArrayList chars=新的ArrayList();
扫描仪控制台=新扫描仪(System.in);
while(console.hasNext()){
字符串行=console.next();
String[]tokens=line.split(\\s*,\\s*);
for(int i=0;i

}

“做这件事最好的方法是什么?”我会做一些研究,然后尝试一些事情。我的意思是除了问我们之外。
str.split(\\s*,\\s*”)
会处理分割问题。你为什么要破坏我所做的编辑?不要使用“后退”按钮编辑帖子。改为使用帖子下方的“编辑”链接。你能解释一下这是怎么回事吗?(“\\s*,\\s*)@arshajii我想OP正在回复您。OP-确保使用
@PersonName
通知人们。。