缩写字符串中的单词以符合最大长度



我有一个字符串向量(带有几个单词的短语(。 由于超出此问题范围的原因,我需要遵守每个字符串 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

我想到了在编码之前,我会在这里询问一个替代/更好的解决方案。 另外,如果没有更好的选择,在实施时我应该记住哪些事情?你能给我任何提示吗?

我有一些想法...这可能满足您的需求,也可能不满足您的需求。首先,下面是一些可以通过编程方式实现的其他缩写形式。

删除元音

如果删除元音,则可以在所需长度内缩写单词,并且可读性略高。删除元音是一种可接受的缩写形式。请记住,即使它们是元音,您也需要保留单词的第一个和最后一个字母。组织 = 组织

使用缩写 API

https://Abbreviations.com 有一个带有缩写的 API。这对于缩写较长的单词可能很有用。例如,要查找"组织"的缩写:https://www.abbreviations.com/abbreviation/organization 缩写为 ORG

看来这个用户已经尝试在python中执行此操作。如果您知道您将有频繁的短语,则可以创建缩写形式的字典。

不幸的是,无论您在何处截断数据,两个字符串最终都有可能对最终用户看起来相同。您可以进行一些字符串比较以确定差异在哪里,然后编写一些逻辑来截断其他位置的字符。

最新更新