这里有趣的问题,想知道是否有人遇到过它.
我正在构建一个Android应用程序,它有一些特殊字符作为文本(主要是日文字符),我们的设计师需要一些战略性的软回报,因为较小的设备的宽度限制,文本需要包装.
问题是因为文本基本上是日语,所以单词之间没有空格.
我知道我们可以使用\u200b零宽度空间产生这样的字符串:
ABCDEF\u200bghijklmnop
当有足够的空间时,出现这样的情况:
abcdefghijklmnop
如果它需要换行,就像这样:
abcdef
ghijklmnop
问题是,如果不使用标准英文字符,我们使用日语字符似乎不起作用.我们根本没有软线.无论我们把它放在哪里,它总是会在空间不足的地方突破\u200b
ヘルプヘルプ\ u200bヘルプヘルプ
结果是:
ルヘプルヘプルヘプヘ
ルプ
有没有人以前处理过这个问题或有任何关于如何解决这个问题的想法?
我遇到了一个错误,我无法将两个看似“相同”的字符串匹配在一起。例如,以下两个字符串无法匹配:“sample”和“?sample”。
要复制该问题,可以在 Clojure 中运行以下命令。
(= "sample" "?sample") ; returns false
Run Code Online (Sandbox Code Playgroud)
经过一个小时的沮丧调试,我发现第二个字符串前面有一个零宽度的空间!通过退格从这个特定的例子中删除它是微不足道的。但是,我有一个匹配的字符串数据库,似乎有多个字符串面临这个问题。我的问题是:是否有一种通用的方法可以在 Clojure 中修剪零宽度空格?
我试过的一些方法:
(count (clojure.string/trim "?abc")) ; returns 4
Run Code Online (Sandbox Code Playgroud)
(count (clojure.string/replace "?abc" #"\s" "")) ; returns 4
Run Code Online (Sandbox Code Playgroud)
这个线程从 JavaScript 字符串中删除零宽度空格字符确实提供了一个在这个例子中工作的正则表达式解决方案,即
(count (clojure.string/replace "?abc" #"[\u200B-\u200D\uFEFF]" "")) ; returns 3
Run Code Online (Sandbox Code Playgroud)
但是,正如帖子本身所述,还有许多其他潜在的 ascii 字符可能是不可见的。所以我仍然很感兴趣,如果有一种更通用的方法不依赖于列出所有可能的不可见 unicode 符号。
在将CSV文件读入数组的过程中,我注意到第一个数组元素,它是一个字符串,包含一个前导"".
例如:
str = contacts[0][0]
p str
Run Code Online (Sandbox Code Playgroud)
给我...
"SalesRepName"
然后我偶然尝试尝试:
str = contacts[0][0].split(//)
p str
Run Code Online (Sandbox Code Playgroud)
那给了我......
["","S","a","l","e","s","R","e","p","N","a","m"," E"]
我已经检查了数组中的每个其他元素,这是唯一一个包含前导""的字符串.
我在这里遇到这个公式,为什么分割没有分隔符?
\n=SPLIT(A2&"\xe2\x80\x8b"&B2, "\xe2\x80\x8b")\nRun Code Online (Sandbox Code Playgroud)\n\n但不显示这个错误。
\n\nsplit join google-sheets zero-width-space google-sheets-formula