2016-11-12 131 views
0

我有一个字符串"4612 CMP Computer Science Java II CMP110 A- 010"这是一门课程。我需要获得“计算机科学”和“Java II”位。我认为最简单的方法是将它分成包含标签的数组。Java在空格处拆分字符串但保留制表符

之后4612是一个选项卡,以及科学和Java之间。

我想将它拆分得到一个数组是这样的:

string[0] = 4612 
string[1] = " " 
string[2] = CMP 
string[3] = Computer 
string[4] = Science 
string[5] = " " 
string[6] = Java 
string[7] = II 
string[8] = CMP110 
string[9] = A- 
string[10] = 010 

回答

-1

使用:

String[] subject = line.split("\t",line.length()); 

可以让我得到我所需要的。

+0

无论你的问题很清楚,也没有答案。 –

1

由于课程串似乎有一个明确定义的格式,你也可以使用正则表达式来提取相关信息,例如:

final String course = "4612\tCMP Computer Science\tJava II CMP110 A- 010"; 
    final Pattern pattern = Pattern.compile("^\\d+\tCMP\\s+([^\t]+)\t(.+?)\\s+CMP.*$"); 
    final Matcher matcher = pattern.matcher(course); 

    if (matcher.matches()) { 
     System.out.println("Course name: " + matcher.group(1) + " " + matcher.group(2)); 
    } 
相关问题