我正在寻找优雅的方式来缩短" (用户提供的)对象名称。更确切地说:
现在我正在寻找关于如何生成这些"减少"名称,基于64个字符的名称。
"优雅"我想知道任何有用的想法"可能"允许用户在缩短的字符串中识别具有值的内容。 比如,如果名称是"生产测试项目A5&#34 ;;那么也许" PTIA5"可能(或可能不)告诉用户一些有用的东西。
答案 0 :(得分:2)
将子串方法应用于长版本,修剪它,以防末尾有任何空白字符,可选择从最末端删除任何特殊字符(如破折号),最后添加一个点,以备不时之需用这种方式表示你的缩写。
快速破解让你入门:
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);
答案 1 :(得分:2)
我需要缩短名称以充当数据库中的列名称。理想情况下,用户应该可以识别名称。我为带有相应“缩写”的常用单词建立了模式词典。仅适用于超过30个字符的名称。