检测文本文件中的制表符空间和下一个石灰标记符号

时间:2011-02-19 14:08:22

标签: java parsing

我需要解析一个原始文本文件,其中包含每行的项目和制表符分隔的字段。

如何从纯文本文档中检测制表符空间和下一行标记符号?我正在考虑使用Java API ...但如果你知道任何更快的语言和易于使用的文本解析请告诉我

感谢

4 个答案:

答案 0 :(得分:3)

String str = "Hello\tworld\nHello Universe";
System.out.println(str);
System.out.println(str.contains("\t"));
System.out.println(str.indexOf("\t"));
System.out.println(str.contains("\n"));
System.out.println(str.indexOf("\n"));

<强>输出:

Hello        world
Hello Universe
true
5
true
11

答案 1 :(得分:1)

你可以试试这个

 try 
 {
     BufferedReader br = new BufferedReader(new FileReader(file1));
     String strLine = "";
      while (br.readLine() != null) 
      {
        strLine =br.readLine();
        Scanner str = new Scanner(strLine);
        str.useDelimiter("\t");
        while(str.hasNextToken)
        {
        }
      }
   } catch (Exception e)
   {
   } 

答案 2 :(得分:1)

您可以使用Google的番石榴图书馆 请查看CharMatcherGuava's slides

这是一个例子:

@Test
public void testGuavaMatcher(){

    String str = "Hello\tworld\nHello Universe";        

    CharMatcher tabMatcher = CharMatcher.is('\t');
    CharMatcher newLineMatcher = CharMatcher.is('\n');

    assertThat(tabMatcher.indexIn(str), is(5));
    assertThat(tabMatcher.matchesAnyOf(str), is(true));
    assertThat(newLineMatcher.indexIn(str), is(11));
    assertThat(newLineMatcher.matchesAnyOf(str), is(true));

    CharMatcher tabAndNewLineMatcher = tabMatcher.or(newLineMatcher);

    assertThat(tabAndNewLineMatcher.removeFrom(str), is("HelloworldHello Universe"));
}  

您还可以查看CharMatcher.BREAKING_WHITESPACE常量。

答案 3 :(得分:0)

文本文件没有“标记”。使用BufferedReader.readLine()获取每一行。通过在行中搜索“\ t”可以找到标签。