String Groovy说我的Unicode字符串太长了

String Groovy说我的Unicode字符串太长了,string,unicode,groovy,utf-8,maxlength,String,Unicode,Groovy,Utf 8,Maxlength,作为我打印表单的可能错误且麻烦的解决方案的一部分,我使用了一个MS Word文档,保存为XML,并尝试将该XML存储为groovy字符串,以便${fillOutTheFormProgrammatically} 然而,由于MS Word文档与它们一样大,字符串是113100个unicode字符,Groovy说它仅限于65536个字符。有什么办法可以改变这一点吗?还是我一直在分割字符串 这就是我想做的 更新:为了澄清Groovy字符串太长。。我想一根普通的绳子可能就好了。要更改策略并在文件中添加一

作为我打印表单的可能错误且麻烦的解决方案的一部分,我使用了一个MS Word文档,保存为XML,并尝试将该XML存储为groovy字符串,以便${fillOutTheFormProgrammatically}

然而,由于MS Word文档与它们一样大,字符串是113100个unicode字符,Groovy说它仅限于65536个字符。有什么办法可以改变这一点吗?还是我一直在分割字符串

这就是我想做的


更新:为了澄清Groovy字符串太长。。我想一根普通的绳子可能就好了。要更改策略并在文件中添加一些字符串,我可以很容易地找到,如%!%变量名称%!%然后做.replace(…呃,我觉得这里有一个新问题…

你得到了什么异常?我不相信Groovy字符串限制在65536,因为它基本上是一个Java字符串

在我看来,您似乎试图在某个地方递归并达到65536调用堆栈限制

尽管如此,一次性将一个100K+字符加载到内存中似乎有些过头了

为什么不使用SAX解析器或类似的工具来解析XML以获得结果呢


或者,为什么不只保存开始时需要的数据,而不依赖成百上千个字符的xml(我假设您只需要一小部分xml)

是否将此字符串直接嵌入groovy代码中?jvm本身对字符串常量的长度有限制,如果您对详细信息感兴趣,请参阅


一个难看的解决方法可能是将字符串拆分成更小的部分,并在运行时将它们连接起来。更好的解决方案是将文本保存在外部文件中,并从代码中读取内容。您还可以将此文件与代码打包在一起,并使用从类路径访问它。

有固定的调用堆栈限制?Source?@Michael是的,最大重新恢复深度设置为堆栈大小(java的
-Xss
参数可以更改默认值)…实际上,我错了,它是