现在我正试图将一条线分成多个部分并让它们接受多个子串。我的行将包含大约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);
}
有谁知道我怎么能这样做?我只能使用子串和循环来完成此任务。 非常感谢。
答案 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