Вопрос

I want to split a String into 3 Strings and each element of this (seperated by ",") into an Array.

e.g.

java test 2,4,5,7 3,b,f,6 7,v,f,g

into

Array1 = [2,4,5,7]    
Array2 = [3,b,f,6]    
Array3 = [7,v,f,g]

My Try:

import java.util.Arrays;

public class test {

public static void main(String[] args) {

String erstemenge[] = args[0].split(" ");   
String menge1 = erstemenge[0];
String menge2 = erstemenge[1];
String menge3 = erstemenge[2];

String [] m1 = menge1.split(","); 
String [] m2 = menge2.split(","); 
String [] m3 = menge3.split(","); 

System.out.println("Test:" + Arrays.toString(m1));
System.out.println("Test:" + Arrays.toString(m2));
System.out.println("Test:" + Arrays.toString(m3));

Error:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at CharSet.main(CharSet.java:43)

What did I so wrong?

Это было полезно?

Решение

You're probably failing to quote your input parameters. It looks like you're running:

java -cp . test 1,2,3 4,5,6 7,8,9

Which will set args to

["1,2,3", "4,5,6", "7,8,9"]

But you're running args[0].split(" ");

You can fix this by just setting

String menge1 = args[0];
String menge2 = args[1];
String menge3 = args[2];

Or by running your program as

java -cp . test "1,2,3 4,5,6 7,8,9"

Другие советы

If you quote your string on the command line, args will be a one-element array, args[0] will be three groups separated by spaces.

If you don't, args will be a three-element array and args[0] will have no space to split on.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top