Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String “缩短”字符串的算法?_String_Algorithm - Fatal编程技术网

String “缩短”字符串的算法?

String “缩短”字符串的算法?,string,algorithm,String,Algorithm,我正在寻找优雅的方法来缩短用户提供的对象名称。更准确地说: 我的用户可以输入自由文本作为某些对象的名称,他们最多可以使用64个字符,包括空格、标点符号等。。。 除了那个长长的名字;我们还有一个精简名称,精确到8个字符;某些遗留接口需要 现在,我正在寻找如何基于64个字符的名称生成这些简化名称的想法 对于优雅,我想知道有什么有用的想法可以让用户在缩短的字符串中识别出有价值的东西。 如名称为生产试验项目A5;然后,PTIA5可能会也可能不会告诉用户一些有用的信息。对长版本应用子字符串方法,对其进行修

我正在寻找优雅的方法来缩短用户提供的对象名称。更准确地说:

我的用户可以输入自由文本作为某些对象的名称,他们最多可以使用64个字符,包括空格、标点符号等。。。 除了那个长长的名字;我们还有一个精简名称,精确到8个字符;某些遗留接口需要 现在,我正在寻找如何基于64个字符的名称生成这些简化名称的想法

对于优雅,我想知道有什么有用的想法可以让用户在缩短的字符串中识别出有价值的东西。
如名称为生产试验项目A5;然后,PTIA5可能会也可能不会告诉用户一些有用的信息。

对长版本应用子字符串方法,对其进行修剪,以防结尾有任何空格字符,可以选择从结尾删除任何特殊字符,如破折号,最后添加一个点,以防您希望以这种方式表示缩写

这只是一个快速入门的技巧:

  String longVersion = "Aswaghtde-5d";

  // Get substring 0..8 characters
  String shortVersion = longVersion.substring(0, (longVersion.length() < 8 ? longVersion.length() : 8));

  // Remove whitespace characters from end of String
  shortVersion = shortVersion.trim();

  // Remove any non-characters from end of String
  shortVersion = shortVersion.replaceAll("[^a-zA-Z0-9\\s]+$", "");

  // Add dot to end
  shortVersion = shortVersion.substring(0, (shortVersion.length() < 8 ? shortVersion.length() : shortVersion.length() - 1)) + ".";

  System.out.println(shortVersion);

对长版本应用子字符串方法,修剪它,如果结尾有任何空格字符,可以选择从最末尾删除任何特殊字符,如破折号,最后添加一个点,以防您希望以这种方式表示缩写

这只是一个快速入门的技巧:

  String longVersion = "Aswaghtde-5d";

  // Get substring 0..8 characters
  String shortVersion = longVersion.substring(0, (longVersion.length() < 8 ? longVersion.length() : 8));

  // Remove whitespace characters from end of String
  shortVersion = shortVersion.trim();

  // Remove any non-characters from end of String
  shortVersion = shortVersion.replaceAll("[^a-zA-Z0-9\\s]+$", "");

  // Add dot to end
  shortVersion = shortVersion.substring(0, (shortVersion.length() < 8 ? shortVersion.length() : shortVersion.length() - 1)) + ".";

  System.out.println(shortVersion);

我需要缩短名称以在数据库中用作列名。理想情况下,用户应该能够识别这些名称。我建立了一个模式字典,用于常见的单词和相应的缩写。这只适用于那些超过30个字符限制的名称。

我需要缩短名称以在数据库中用作列名。理想情况下,用户应该能够识别这些名称。我建立了一个模式字典,用于常见的单词和相应的缩写。这仅适用于超过30个字符限制的名称。

64个字符的单词远多于8个字符的单词,因此最终会导致冲突。DOS的方法是截断并附加一个计数器。如果缩减后的名称可以包含与长名称相同的字符,为什么不随机选取索引并删除这些索引处的字符?我的意思是,如果它是你说的自由文本,为什么它应该是优雅的呢?64个字符的单词远多于8个字符的单词,所以你最终会遇到冲突。DOS的方法是截断并附加一个计数器。如果缩减后的名称可以包含与长名称相同的字符,为什么不随机选取索引并删除这些索引处的字符?我的意思是,如果它像你说的那样是一个免费的文本,为什么它应该是优雅的呢?好主意,但问题是我们绝对不能控制这个域,或者这里的任何东西。因此,对我们来说,编一本合理的词典也不是真正的解决办法。但我很欣赏这个想法,嘿,欢迎加入投票级别-好主意,但问题是我们绝对无法控制域或任何东西。因此,对我们来说,编一本合理的词典也不是真正的解决办法。但我很欣赏这个想法,嘿,欢迎加入投票级别-