【问题标题】:How do I parse text/plain code in Java?如何在 Java 中解析文本/纯代码?
【发布时间】:2013-06-17 10:57:26
【问题描述】:

我在解析方面遇到了真正的问题,我不知道如何处理它。我正在研究一个具有非常不典型的信息返回的数据库。当您发出请求时,响应是纯文本的,我不知道如何解析它。

查询结果如下所示:

error=0; 
---
name= Pen
detailname= TextMarker Highlighter Pink
---

不涉及 html、XML 或 json - 结果几乎是这样返回的。

我不知道如何在 Java 中解析纯文本。例如,我如何解析,所以我只能得到 name= 或任何其他类别之后的信息?我曾尝试使用 JSoup,但我无法弄清楚。有经验的人可以解释一下我如何过滤这个吗?

谢谢
保罗

【问题讨论】:

    标签: android text-parsing


    【解决方案1】:

    因为它看起来像一个 *.properties 文件,我建议

    Properties p = new Properties();
    p.load(inputStream);
    

    您只需将结果作为 InputStream 或 Reader(即 StringReader)获取,然后就可以像 Properties 一样访问它。

    String error = p.getProperty("error");
    String name = p.getProperty("name");
    String detailName = p.getProperty("detailname");
    

    这会让你得到:

    error: "0;"
    name: " Pen"
    detailName: " TextMarker Highlighter Pink"
    

    您唯一需要记住的是,“---”也将是属性中的一个条目。

    值中的换行符可能会破坏这一点。

    【讨论】:

    • 我欠你一杯啤酒!谢谢你一百万次!!这似乎已经成功了,但我必须检查何时回家!
    【解决方案2】:

    不确定它是否适用于 Android 但在 Java 中,您不能使用Scanner 来阅读文本吗? 例如类似于

    Scanner scanner = new Scanner(new FileReader(fFile));
    while ( scanner.hasNextLine() )
    {
         String content = scanner.next();
         ....
    
         // check text for whatever values you need, e.g.
         if(content.startsWith("name=")
         {
                // do your thing
                ....
         }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 2013-01-21
      相关资源
      最近更新 更多