一个让我比较郁闷的需求、、

本文介绍了一种针对淘宝店铺标题的优化算法,旨在解决移动设备上标题显示过长的问题。算法包括过滤特殊符号、URL编码及空白,以及按字节长度截取标题,确保在小屏幕上也能清晰展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产品经理给了一个需求,让我着实比较郁闷,不过理论上讲世界上是没有没答案的问题的所以只能按照需求给出个相对可以实现的结果。

需求如下:

淘宝店铺的标题展示规则:因为做移动互联网的,手机屏幕毕竟很小,淘宝给的接口中的标题又比较长所以只能是去做相应的截取了

1.过滤特殊符号,以空格代替
2.过滤url编码:将类似 %3F 去除
3.过滤空白,去除标题首尾空白
4.以第一个空格前的词组为标题,如字段长度8个字符(4个汉字)以下(不含8个字符)时,以第二个空格前第一个空格后的词组为标题。
5.当第一个文字词组和第二个文字词组均在8个字符(4个汉字以下)依次类推,以第三,第四个词组作为标题。若所有标题均不能满足需求,则以第一个文字词组为标题。

需求中的字符 其实应该是字节的吧、、、、咳咳 

实现代码如下:

      

 1 private String formatTitle() {
 2 
 3       this.subTitle = this.title;
 4       for (String a : InitUtils.getInstance().getSpecialList()) {//这个单例是获取那个特殊字符的列表的
 5         if (this.subTitle.indexOf(a) > -1) {
 6           this.subTitle = this.subTitle.replace(a, " ").replace("amp;", "").trim();
 7         }
 8       }
 9       String[] array = this.subTitle.split(" ");
10       if (array[0].length() >= 4) {
11         this.subTitle = array[0];
12       } else {
13         String temp = array[array.length - 1];
14         for (int i = 0; i < array.length; i++) {//这里的冒泡其实就是找到最长的那个啦
15           for (int j = array.length - 1; j > i; j--) {
16             if (array[j].getBytes().length < array[j - 1].getBytes().length) {
17               temp = array[j - 1];
18               array[j] = array[j - 1];
19               array[j - 1] = temp;
20              }
21           }
22         }
23         this.subTitle = temp;
24       }
25 
26       if (this.subTitle.length() >= 10) {
27         this.subTitle = this.bstring(this.subTitle, 16) + "...";
28       }
29       return this.subTitle;
30     }
31     //使用subString 进行截取会按照字符串的长度进行截取,显然会出现只剩几个英文字母的情况,而这也不是产品所想要的,而且他的意思也是 截取的时候要通过字节计算长度,而这就不可避免的出现把汉字截取成一半的情况了所以使用以下的方法对字符串进行截取
32     public String bstring(String s, int length){
33     try {
34       int i = 2;
35       byte[] bytes = s.getBytes("Unicode");
36       int n = 0;
37       for(;i<bytes.length&&n<length;i++){
38         if(i%2==1){//奇数位置 ,是字节中的第二个位置
39           n++;
40         }else{
41           if(bytes[i]!=0){//这里如果不等于0,就说明当前的字节是属于一个汉字的,需要把截取长度加1哦
42             n++;
43                }
44         }
45       }
46       if(i%2==1){
47         if(bytes[i-1]!=0){
48           i-=1;
49         }else{
50           i+=1;
51         }
52       }
53       return new String(bytes,0,i,"Unicode");
54     }
55       catch (UnsupportedEncodingException e) {
56        LogUtils.getError().error("cut tabshops title errror", e);
57     }
58     return "";
59   }

转载于:https://www.cnblogs.com/icoding/archive/2012/07/08/2581161.html

需求分析说明书 1. 介绍 本需求分析说明书是为了开发一款助老机器人而编写的。该机器人可以在居家环境中自动追踪老人,识别老人状态和响应老人的语音指令,还可以和老人进行语音聊天。本文档描述了该机器人的所有需求,并包含了所有的功能和性能要求。 2. 功能需求 2.1 摄像头识别老人状态 机器人需要搭载一个高清摄像头,能够在老人的面部识别出老人的表情和状态,如开心、郁闷、疲惫等。机器人需要通过分析老人的表情,来判断老人的情绪状态,并做出相应的反应,比如安慰老人、提醒老人休息等。 2.2 自动追踪老人 机器人需要通过摄像头追踪老人,能够自动跟随老人的移动,保证老人的安全。当老人走出机器人的视线范围时,机器人需要通过语音提示老人回到视线范围内。 2.3 响应老人语音指令 机器人需要搭载一个智能语音识别系统,能够识别老人的语音指令,并根据老人的指令做出相应的反应,比如播放音乐、开灯、关灯、调整温度等。 2.4 语音聊天 机器人需要能够和老人进行语音聊天,机器人需要具备自然的语音交互能力,能够理解老人的话语,并回复合适的答案。 3. 性能需求 3.1 高清摄像头 机器人的摄像头需要支持高清画质,能够清晰地识别老人的表情和状态。 3.2 快速响应 机器人需要能够快速响应老人的语音指令,并在短时间内做出相应的反应。 3.3 自然语音交互 机器人需要具备自然语音交互能力,能够理解老人的话语,并回复合适的答案。 4. 安全需求 4.1 保护老人隐私 机器人需要保护老人的隐私,不会记录老人的个人信息和隐私内容。 4.2 防止碰撞 机器人需要搭载防撞装置,避免机器人在追踪老人时与家具或墙壁发生碰撞,保证老人的安全。 5. 其他需求 5.1 可充电电池 机器人需要搭载可充电电池,保证机器人的长时间使用。 5.2 易于操作 机器人需要易于操作,老人可以通过简单的操作来控制机器人。 6. 总结 本文档详细描述了助老机器人的所有需求,包括功能需求、性能需求、安全需求和其他需求。这些需求将确保机器人能够为老人提供安全、便利和舒适的生活服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值