Java将字符串分解为多个子字符串

时间:2015-11-21 03:15:37

标签: java

现在我正试图将一条线分成多个部分并让它们接受多个子串。我的行将包含大约10个字符串,我想分手。第一个是字符串,以下数据集将是数字。第一个我已经分崩离析了,但随着我向前推进,我发现了多个问题。

一个例子是"杰克5 2 12 31 1 2 111 1 2 3"。

public static void histogram(String line)
{
    System.out.println(line);
    String l1 = line.substring(0, line.indexOf(" "));
    int l1l = l1.length() + 2;
    String l2 = line.substring(l1l, line.indexOf(" "));
    System.out.print(l2);

}

有谁知道我怎么能这样做?我只能使用子串和循环来完成此任务。 非常感谢。

2 个答案:

答案 0 :(得分:1)

为什么不使用String类的split()方法。在您的情况下很方便,因为您想要做的就是分成一个空格。 split()方法返回一个字符串数组,然后您可以使用它们进行进一步处理。在此处查找文档:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

答案 1 :(得分:0)

我担心你问题的解决方案太短了,一旦我告诉你,它已经是答案了。无论如何,你可以这样做(因为你只能使用 for-loop substring ):

int size = 11;   //Assume you know the size of number of tokens
String str = "Jack 5 2 12 31 1 2 111 1 2 3";
String[] ary = new String[size];

for(int x=0; x<size; x++){
    int idx = str.indexOf(" ");          //Get position of first space
    if(idx != -1){                       //If space exist
        ary[x] = str.substring(0, idx);  //Get the first token
        str = str.substring(idx+1);      //Remove the first token from string       
    }               
}
ary[size-1] = str;                       //Assign the last substring 
  • 基本上,你只需要根据第一个空格的位置读取第一个子串(即Jack)。
  • 分配后,将其从原始字符串中删除
  • 在下一次迭代中,您的第一个子字符串将为“5”,因为您已从原始字符串中删除了“Jack”。