我需要解析一个原始文本文件,其中包含每行的项目和制表符分隔的字段。
如何从纯文本文档中检测制表符空间和下一行标记符号?我正在考虑使用Java API ...但如果你知道任何更快的语言和易于使用的文本解析请告诉我
感谢
答案 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的番石榴图书馆 请查看CharMatcher和Guava'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”可以找到标签。