Java - 字符串拆分错误

时间:2014-04-29 23:12:43

标签: java string split

我正在尝试拆分字符串并将每个子字符串返回到Java中的数组(c#中更容易),但编译器没有它。当我尝试调用索引高于0的数组中的任何字符串的值时,我不断得到索引超出范围错误。这是我正在使用的代码:

public class hello {
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int setter = 3000;
        String num = in.next();
        String[] numbers = num.split(" ");
        int j = numbers.length;
        for (int i =0; i < numbers.length ; i++) {
            System.out.println(numbers[i]);
        }
        System.out.println(j);

即使返回的数组长度也是1。

2 个答案:

答案 0 :(得分:0)

David Wallace在评论中说:你应该使用Scanner的nextLine ...... 但是......为什么读行分为int?

public static void main(final String[] args) {
    final Scanner in = new Scanner(System.in);
    String line = null;

    List<List<Integer>> all = new ArrayList<>();

    while ((line = in.nextLine()) != null) {
        final String[] tokens = line.split(" ");
        List<Integer> forOneLine = new ArrayList<>();
        for (final String token : tokens) {
            try {
                final Integer value = Integer.valueOf(token);
                forOneLine.add(value);
            } catch (final NumberFormatException e) {
                // Not an Integer
            }
        }
        all.add(forOneLine); 
    }

现在好吗?

答案 1 :(得分:0)

结束解析为整数

 public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        String n = in.nextLine();
        int ne = Integer.parseInt(n);
        String m = in.nextLine();
        String[] numbers = m.split(" ");
        System.out.println(n);
        System.out.println(m);
        for (String string : numbers) {
            System.out.println(string);
        }
    }