Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串处理算法_Java_String_Algorithm_Compiler Construction - Fatal编程技术网

Java 字符串处理算法

Java 字符串处理算法,java,string,algorithm,compiler-construction,Java,String,Algorithm,Compiler Construction,我有一个问题让我思考如何提高系统的速度和内存。 我将通过示例来描述它,我有一个包含一些字符串的文件: <e>Customer</e> <a1>Customer Id</a1> <a2>Customer Name</a2> <e>Person</e> 客户 客户Id 客户名称 人 它类似于xml文件 现在,我的解决方案是,当我读取Customer时,我将从中读取最近的标记,然后从Cu

我有一个问题让我思考如何提高系统的速度和内存。 我将通过示例来描述它,我有一个包含一些字符串的文件:

<e>Customer</e>
    <a1>Customer Id</a1>
    <a2>Customer Name</a2>
<e>Person</e>
客户
客户Id
客户名称
人
它类似于xml文件

现在,我的解决方案是,当我读取
Customer
时,我将从中读取最近的标记,然后从
Customer
子字符串读取最近的标记

这使得系统需要处理这么多。我只使用正则表达式来实现它。我想我会像真正的编译器那样做,它有一些阶段(词法分析、解析器)

有什么想法吗


提前谢谢

只是不要把时间花在XML lexer/解析器上(这不值得),而是使用现成的工具


例如,这是一个很好的教程,只需使用谷歌即可。

只需不要把时间花在XML词法分析器/解析器上(这不值得),而是使用现成的工具


例如,这是一个很好的教程,只需使用google即可。

正则表达式不是解析这样复杂结构的正确工具。由于您的文件看起来很像XML,因此添加缺少的内容使其成为XML(即标头)并将结果提供给XML解析器可能是有意义的


XML解析器经过优化,可以快速处理大量数据(特别是SAX类型的数据)。如果您从使用正则表达式处理大量文本转向解析XML,您应该会看到性能的显著提高。

正则表达式不是解析此类复杂结构的合适工具。由于您的文件看起来很像XML,因此添加缺少的内容使其成为XML(即标头)并将结果提供给XML解析器可能是有意义的


XML解析器经过优化,可以快速处理大量数据(特别是SAX类型的数据)。如果您从使用正则表达式处理大量文本转向解析XML,您应该会看到性能的显著提高。

如果您真的不想使用免费可靠的XML解析器,那么真正快速的解决方案几乎肯定会涉及到状态机

看看这个问题,有个好的开始


请务必有一个非常好的理由来选择这条路线。

如果你真的不想使用免费可靠的xml解析器,那么一个真正快速的解决方案几乎肯定会涉及到一个状态机

看看这个问题,有个好的开始



请务必有一个非常好的理由来选择这条路线。

为什么不定义一个实际的XML文档(您可以定义自己的标记,所以我认为您所展示的可能已经有效了…),然后通过一个XML解析库运行它?感谢您的快速回复,这对我来说只是一个挑战。我正在搜索要查看的开源xml,但所有开源都使用来自jdk的源代码。虽然从技术上讲jdk本身似乎是用于Linux(部署),但相当一部分Java代码本身仍然应该是“可移植的”——请查看jdk的开源版本。为什么不定义一个实际的xml文档呢(您可以定义自己的标记,所以我认为您所展示的可能已经有效了…),然后通过其中一个XML解析库运行它?感谢您的快速回复,这对我来说只是一个挑战。我正在搜索开源XML以查看,但所有开源都使用来自jdk的源代码。虽然从技术上讲,jdk本身似乎是针对Linux的(部署),相当一部分Java代码本身应该仍然是“可移植的”——看看哪一个是JDK的开源版本。谢谢,若有任何语言并没有内置XML语法分析器和语法分析器?谢谢,若有任何语言并没有内置XML语法分析器和语法分析器?我用PhoneGap处理数据,我认为Javascript并没有最好的XML语法分析器。这很简单我这么做的原因。@TrungHuynh对于适度大的输入,即使是糟糕的XML解析器也会打败正则表达式。好吧,我同意,那么为什么我不构建一个新的解析器,更好地满足我的需要呢?因为稍微调整一下您的目的将节省您数周困难且容易出错的工作,并为您提供一个现在可以使用的解决方案。我在PhoneGap中处理数据而且我认为,在Javascript中没有最好的xml解析器。这就是我这样做的原因。@TrungHuynh对于适度大的输入,即使是糟糕的xml解析器也会打败正则表达式。好吧,我同意,那么为什么我不建一个新的解析器,更好地满足我的需要呢?因为稍微调整一下用途将节省您数周困难且容易出错的工作,并且我有一个解决方案,现在就可以了。@TrungHuynh-听到这个消息我很难过-祝你好运。有很多资源覆盖状态机。@TrungHuynh-听到这个消息我很难过-祝你好运。有很多资源覆盖状态机。