Tag: 解析

从嵌套的JSON对象中检索值

我有JSON文件,我想解析。 JSON文件(“myfile”)的格式如下: { “LanguageLevels”: { “1”: “Początkujący”, “2”: “ŚrednioZaawansowany”, “3”: “Zaawansowany”, “4”: “Ekspert” } } 我想从语言级别中检索Key 2的值(ŚrednioZaawansowany)。 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JsonSimpleExample { public static void main(String[] args) { JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader(“myfile”); […]

C#和Java语法是LALR(x)吗?

我想知道C#和Java语法是否是LALR(x)? 如果是,那x的价值是多少? 编辑: 在接受了真正的答案之后,我认为以这种方式改变Q更好: 是否有任何LALR(x)解析器可以解析当前版本的Java(版本7)或C#(版本4)? 如果是,x的值是多少?

ISO 8601 Java时间间隔解析

ISO 8601定义了表示时间间隔的语法。 表达时间间隔有四种方式: 开始和结束,例如“2007-03-01T13:00:00Z / 2008-05-11T15:30:00Z” 开始和持续时间,例如“2007-03-01T13:00:00Z / P1Y2M10DT2H30M” 持续时间和结束,例如“P1Y2M10DT2H30M / 2008-05-11T15:30:00Z” 仅限持续时间,例如“P1Y2M10DT2H30M”,带有其他上下文信息 如果结束值中缺少任何元素,则假定它们与包括时区的起始值相同。 该标准的这一特征允许简洁地表示时间间隔。 例如,包括开始和结束时间在内的两小时会议的日期可以简单地显示为“2007-12-14T13:30/15:30”,其中“/ 15:30”表示“/ 2007-12-” 14T15:30“(与开始时间相同),或每月结算期间的开始和结束日期为”2008-02-15 / 03-14“,其中”/ 03-14“表示”/ 2008-03 -14“(与开始的同一年)。 另外,通过在间隔表达式的开头添加“R [n] /”来形成重复间隔,其中R用作字母本身,[n]由重复次数代替。 省略[n]的值意味着无限次重复。 因此,要从“2008-03-01T13:00:00Z”开始重复“P1Y2M10DT2H30M”的间隔五次,请使用“R5 / 2008-03-01T13:00:00Z / P1Y2M10DT2H30M”。 我正在寻找一个好的Java解析器(如果可能与Joda-Time库兼容)来解析这个语法。 任何指向好图书馆的指针?

将包含命令行参数的字符串拆分为Java中的String

与C#的这个线程类似,我需要将包含命令行参数的字符串拆分到我的程序中,这样我就可以让用户轻松运行多个命令。 例如,我可能有以下字符串: -p /path -d “here’s my description” –verbose other args 鉴于上述情况,Java通常会将以下内容传递给main: Array[0] = -p Array[1] = /path Array[2] = -d Array[3] = here’s my description Array[4] = –verbose Array[5] = other Array[6] = args 我不需要担心任何shell扩展,但它必须足够聪明,以处理单引号和双引号以及字符串中可能存在的任何转义。 有没有人知道在这些条件下shell会解析字符串的方法? 注意 :我不需要进行命令行解析,我已经使用joptsimple来做到这一点。 相反,我想让我的程序易于编写脚本。 例如,我希望用户能够在一个文件中放置一组命令,每个命令在命令行上都是有效的。 例如,他们可能会在文件中键入以下内容: –addUser admin –password Admin –roles administrator,editor,reviewer,auditor –addUser editor –password Editor –roles editor –addUser […]

用Java解析约会?

我有dd-mmm-yy或d-mmm-yforms的文本格式的日期,其中月份是字母的缩写(例如,09年11月4日或12月12日等等)我会喜欢解析它以生成java.util.Date对象。 这可以通过利用java.text.DateFormat类来实现吗? 或者还有另一种简单的方法吗?

Java RTF Parser

有谁知道我可以在Java中使用的健壮的RTF解析器? 我需要提取纯文本,包括国际文本。 提取嵌入的图像和文件也很不错。 它也可以是我可以轻松调用的C ++或其他库,或者如果有很好的源代码,我可以转换为Java。 以下库不能覆盖足够的RTF,或无法解析某些有效的RTF Java Swing的RTFEditorKit,非常基础和脆弱的Apache Tikka,nutch和许多其他工具使用它。 iText的一个RTF库(com.lowagie.etc …),不太全面 etranslate rtf库(这是java中最完整的)不确定是否有更新版本,但是我的部分rtf集合上的版本失败(RTF有效,至少它们在MsWord和OpenOffice中打开OK )。 有一个C#库是相当完整的,但是唉…它是C#而不是Java。 http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter 我也研究过OpenOffice,它对于我需要的东西来说太慢了,尽管它可能非常全面。 (在发布这个问题之前,我确实进行了网页搜索和堆栈溢出搜索,所以如果你引用我一个古老的“已经被问到”的post,它可能在那里没有答案。但是请随意指出,以防万一我错过了!)

如何解析Android中的XML

我需要解析以下xml到输出,如: String id=”3″ String name=”str1″ String path=”/mnt/sdcard/path2″ String type=”2″ String desc=”des3)” 我怎样才能在android中完成这个? 谢谢。

如何使用Java 8 DateTimeFormatter更改解析两个字母年份的基准日期?

如果我使用像d/M/yy这样的模式来创建Java 8 DateTimeFormatter(例如使用DateTimeFormatter.ofPattern(pattern); (我将只用于解析,而不是格式化),它会将所有两个字母的年份解释为20xx例如解析像13/5/99这样的字符串被解释为2099-05-13 ,在我的情况下是错误的(它本来是在1999年)。 在我的应用程序中,我正在尝试从OCR文档中解析日期,这可能仍然是从90年代开始的,所以使用旧的SimpleDateFormat行为将日期解释为在当前日期之前和之后的20年之内我很好。 但由于各种原因,我仍然希望将整个日期解析逻辑切换到新的Java 8 DateTimeFormatters。 浏览Java源代码,我发现这都是相对于常量ReducedPrinterParser.BASE_DATE解释的,但我认为无法更改从模式构建自己的格式化程序时使用的值。 这是不可能的,还是我错过了指定解析两个字母年份的行为的可能性?

无法解析ISO 8601格式的字符串,缺少冒号的冒号,到Java 8 Date

我对java 8日期格式/解析function有点沮丧。 我试图找到Jackson配置和DateTimeFormatter来解析”2018-02-13T10:20:12.120+0000″字符串到任何Java 8日期,并没有找到它。 这是java.util.Date示例,它工作正常: Date date = new SimpleDateFormat(“yyyy-MM-dd’T’hh:mm:ss.SSSZZZ”) .parse(“2018-02-13T10:20:12.120+0000”); 相同的格式不适用于新的日期时间api ZonedDateTime dateTime = ZonedDateTime.parse(“2018-02-13T10:20:12.120+0000”, DateTimeFormatter.ofPattern(“yyyy-MM-dd’T’hh:mm:ss.SSSZZZ”)); 我们应该能够以适合FE UI应用程序的任何格式格式化/解析日期。 也许我误解或误解了一些东西,但我认为java.util.Date提供了更多的格式灵活性并且更易于使用。

jackson – 递归解析为Map

我正在尝试简化我的代码:我想存储键和值(所有字符串)。 我实际上使用Map来存储它。 hat way Object可以是值( String )或新节点( Map )。 我怎么能简化这段代码? 递归函数会很好。 try { JsonParser jsonParser = new JsonFactory().createJsonParser(content); jsonParser.nextToken(); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { jsonParser.nextToken(); if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) { while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String key = jsonParser.getCurrentName(); jsonParser.nextToken(); if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) { mData.put(key, new HashMap()); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String subkey […]