首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Coldfusion的JAVA连接符

使用Coldfusion的JAVA连接符
EN

Stack Overflow用户
提问于 2017-01-18 12:43:47
回答 1查看 103关注 0票数 2

我希望有人能帮助我使用CFML实现TeXHyphenator-J

我使用JavaLoader.cfc创建TeXHyphenator J的ColdFusion对象(如下面的代码所示)。在运行代码时,我没有得到任何错误,并且返回了一个字符串。但是它不是连字符吗?

代码语言:javascript
复制
<!--- Load Javaloader --->
<cfset paths    = arrayNew(1)>
<cfset paths[1] = expandPath("assets/Hyphenator/texhyphj.jar")>
<cfset loader   = createObject("component", "assets.javaloader.JavaLoader").init(paths)>

<!--- Create buffered stream to TeX file --->
<cfset FileInputStream = createobject("java", "java.io.FileInputStream").init(expandPath("assets/Hyphenator/hyphen.tex"))>
<cfset BufferedInputStream = createobject("java","java.io.BufferedInputStream").init(FileInputStream)>

<!--- Initiate Hyphenator --->
<cfset h = loader.create('net.davidashen.text.Hyphenator').init()>
<!--- load the TeX table into Hyphenator --->
<cfset h.loadTable(BufferedInputStream)>
<!--- Get hyphenated string, Hyphenator should return as-so-ci-ate --->
<cfset retStr = h.hyphenate('associate')>

<cfdump var="#retStr#">
EN

回答 1

Stack Overflow用户

发布于 2017-01-19 10:35:28

,但是它没有连字符

虽然不是很明显,但返回值实际上是用连字符连接的。所选的hyphen character, ie \u00ad是不可见的。转储字符串中的每个字符会显示软连字符的ascii值为173:

代码语言:javascript
复制
97  : a
115 : s
173 : ­    <== soft hyphen
115 : s
111 : o
173 : ­    <== soft hyphen
99  : c
105 : i
97  : a
116 : t
101 : e

因此,一个简单的解决方案是将该字符替换为标准连字符:

代码语言:javascript
复制
newString = replace(retStr, chr(173), "-", "all")

附注,直接在java中运行相同的示例也会产生"as-so-ciate",而不是"as-so-ci-ate“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41711508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档