2017-01-18 2 views
2

저는 누군가가 CFML을 사용하여 TeXHyphenator-J의 구현을 도울 수 있기를 희망했습니다.ColdFusion을 사용하는 JAVA 하이픈 네이터

JavaLoader.cfc를 사용하여 TeXHyphenator-J의 ColdFusion 객체를 만듭니다 (아래 코드 참조). 코드를 실행할 때 오류가 발생하지 않고 문자열이 반환됩니다. 그러나 그것은 하이픈으로 연결되어 있지 않습니까? 즉시 명확하지, 반환 값이 실제로 하이픈 동안

<!--- 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#"> 

답변

0

그러나 그것은

하이픈 없습니다. 선택한 hyphen character, ie \u00ad은 보이지 않습니다.

97 : a 
115 : s 
173 : ­ <== soft hyphen 
115 : s 
111 : o 
173 : ­ <== soft hyphen 
99 : c 
105 : i 
97 : a 
116 : t 
101 : e 

그래서 하나 개의 간단한 솔루션은 표준 하이픈 그 문자 대체하는 것입니다 :

newString = replace(retStr, chr(173), "-", "all") 

사이드 메모를 실행 소프트 하이픈은 173의 아스키 값은 문자열의 각 문자를 보여줍니다 덤프 자바에서 같은 예제가 직접 "as-so-ciate", 이 아니라 "as-so-ci-ate"가되었다.