gpt4 book ai didi

java - 我怎样才能用Java解析格式

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:25 24 4
gpt4 key购买 nike

有没有可以调用的API来解析以下格式文件?

define student {
full_name Smith,John
sex male
age 19
grade 90
class_number 8.43.1
reg_hour 5x3
}

文件格式不正确。如图所示,标题和值之间有不同数量的空格和\t。

有什么建议可以用java解析这种格式吗?或者通过Python...

最佳答案

在 Java 中使用 StreamTokenizer 应该是直接的:

http://docs.oracle.com/javase/6/docs/api/java/io/StreamTokenizer.html

它将跳过所有类型的空格,但您需要调用 eolIsSignificant(true) 因为这些值似乎没有任何其他分隔符。

应该看起来大致像这样(不确定是否可以在解析过程中打开和关闭 eol 重要性):

StreamTokenizer tokenizer = new StreamTokenizer(fileInputStream);
tokenizer.wordChars('_', '_');
tokenizer.nextToken();
while ("define".equals(tokenizer.sval)) {
tokenizer.nextToken();
String recordName = tokenizer.sval;
if (tokenizer.nextToken() != '{') {
throw new RuntimeException("'{' expected");
}
while (tokenizer.nextToken() != '}') {
String key = tokenizer.sval;
tokenizer.nextToken();
String value = tokenizer.sval;
tokenizer.eolIsSignificant(true);
while (tokenizer.nextToken() != StreamTokenizer.TT_EOL &&
tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
value += " " + tokenizer.sval(); // If this is common, use StringBuilder
}
tokenizer.eolIsSignificant(false);
}
}

关于java - 我怎样才能用Java解析格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com