小编Son*_*son的帖子

获取Antlr规则的原始文本

我是一名ANTLR初学者,想要计算符号的SHA1-Hash.

我的简化示例语法:

grammar Example;

method @after{calculateSha1($text); }: 'call' ID;

ID: 'A'..'Z'+;
WS: (' '|'\n'|'\r')+ {skip(); }
COMMENT: '/*' (options {greedy=false;}: .)* '*/' {$channel=HIDDEN}
Run Code Online (Sandbox Code Playgroud)

由于词法分析器删除了不同字符串的所有空格callABC,call /* DEF */ ABC不幸的是得到相同的SHA1-Hash值.

是否有可能在开始和结束标记之间获取规则的"原始"文本以及所有跳过的空格和其他通道的文本?

(我想到的一种可能性是成员WS- 和 - COMMENT工具规则中的所有字符,但是还有更多规则,所以这不太实用.)

我使用标准的ANTLRInputStream来提供Lexer,但我不知道如何接收原始文本.

java antlr antlr3

6
推荐指数
1
解决办法
1956
查看次数

Solr:确定文档是否存在

我是 SolrJ 初学者,想找出确定具有唯一 ID 的文档是否存在的最快方法是什么?我不需要文档,我只想知道它是否已经在索引中。

现在我在 SolrJ 中尝试这样的事情:

private boolean solrContainsId(final String id) {
    SolrQuery query = new SolrQuery("id:" + id);

    try {
        long count = server.query(query).getResults().getNumFound();
        return count > 0;
    } catch (SolrServerException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为会有更好(更快?)不需要得分等的方法......

java solr solrj

5
推荐指数
1
解决办法
2405
查看次数

使用jsoup编码Html字符

我必须将字符编码为Html:

< to &lt;
> to &gt;
' to &#39;
" to &quot;
& to &amp;
Run Code Online (Sandbox Code Playgroud)

我在PHP中寻找像htmlspecialchars这样的实用函数:

String htmlspecialchars(String inputText)
Run Code Online (Sandbox Code Playgroud)

是否可以使用JSoup对这些字符进行编码?

(我在Spring框架中找到了htmlEscape,但我不想仅仅为这个简单的函数使用Spring框架.)

html java jsoup

3
推荐指数
1
解决办法
6070
查看次数

提升初学者:如何使用具有Java空值的Box

我是一个Lift初学者,经常编写这样的代码:我使用Java方法返回一个对象或者null找不到值.所以我需要检查空值:

val value = javaobject.findThing(xyz)
if(value != null) {
    value.doAnotherThing()
} else {
    warn("Value not found.")
}
Run Code Online (Sandbox Code Playgroud)

我可以使用Box概念更短地编写此代码吗?我已经阅读了有关Box概念Lift-Wiki文档,但我不明白如何将它与Java null值一起使用.

scala lift option

1
推荐指数
1
解决办法
564
查看次数

Scala:解析HTML片段

我们的数据库存储像f.ex这样的HTML 片段.<p>A.</p><p>B.</p>.我想将数据库中的Html fragements包含在Lift片段中.

为此,我尝试使用XML.loadString()-method将fragement转换为a scala.xml.Elem,但这仅适用于完整有效的XML文档:

import scala.xml.XML
@Test
def doesnotWork() {
  val result = XML.loadString("<p>A</p><p>B</p>")
  assert(result === <p>A</p><p>B</p>)
}

@Test
def thisWorks() {
  val result = XML.loadString("<test><p>A</p><p>B</p></test>")
  assert(result === <test><p>A</p><p>B</p></test>)
}
Run Code Online (Sandbox Code Playgroud)

测试doesnotWork结果例外:

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 10; The markup in the document following the root element must be well-formed.
Run Code Online (Sandbox Code Playgroud)

是否可以将(有效的)fragements转换为XML?

xml scala lift

1
推荐指数
1
解决办法
1146
查看次数

标签 统计

java ×3

lift ×2

scala ×2

antlr ×1

antlr3 ×1

html ×1

jsoup ×1

option ×1

solr ×1

solrj ×1

xml ×1