我有一个字符串向量(带有几个词的短语)。 由于超出此问题范围的原因,我需要遵守每个字符串N个字符的长度限制。
我想的第一件事就是拼接每个字符串,但是不幸的是,操作的结果将面对最终用户(最终用户将不得不读取截断的字符串并从中弄清楚)。
这意味着我不能只对字符串进行切片,因为如果这样做,则会发生以下情况:
This is a simple test with FOO
This is a simple test with BAR
将转换为
This is a simple te...
This is a simple te...
这意味着数据将丢失,并且用户将无法区分这两个字符串。
再多考虑一下,我想出了最好的解决方案,就是始终按照最大长度约束,尽可能少地缩略单词。
具有这种行为,前面的示例将被转换为
This is a sim. te. with FOO
This is a sim. te. with BAR
我发现在编码之前,我会在这里问一个替代/更好的解决方案。 另外,如果没有更好的选择,那么在实施此方法时我应该牢记什么?你能给我任何提示吗?
答案 0 :(得分:1)
我有一些想法……可能会或可能不会满足您的需求。首先,您可以通过编程实现一些其他forms of abbreviation。
删除元音
如果删除元音,则可以在所需长度内缩写单词,并且可读性更高。删除元音是acceptable form的缩写。请记住,即使它们是元音,也需要保留单词的第一个和最后一个字母。组织= orgnztn
使用缩写API
https://Abbreviations.com有一个带有缩写的API。这对于缩写较长的单词可能很有用。例如,要查找“ organization”的缩写:https://www.abbreviations.com/abbreviation/organization缩写为ORG
该用户在python中似乎有attempted to do this。如果您知道自己会经常使用短语,则可以创建缩写形式的字典。
答案 1 :(得分:0)
不幸的是,无论您在何处截断数据,最终用户都可能会看到两个字符串。您可以进行一些字符串比较以确定差异在哪里,然后编写一些逻辑来截断其他位置的字符。