【问题标题】:Java split string at spaces but keep tabsJava在空格处拆分字符串但保留制表符
【发布时间】:2016-11-12 21:16:50
【问题描述】:

我有一个字符串"4612 CMP Computer Science Java II CMP110 A- 010" 这是一门课程。我需要获得“计算机科学”和“Java II”位。我认为最简单的方法是将其拆分为包含选项卡的数组。

4612之后是一个tab,也是Science和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

【问题讨论】:

    标签: java string list


    【解决方案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));
        }
    

    【讨论】:

      【解决方案2】:

      使用:

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

      会让我得到我需要的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-03
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多