📄 stringincise.java
字号:
package com.gctech.sms.sp.cms.util;import java.util.*;/** * 用于分割内容 * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author lijz@gctech.com.cn * @version 1.0 */ public final class StringIncise { private static String DELIM = ",.?!;?!,。、;"; private static int MAX_LENGTH = 58; public static List incise(String src,String start,String midstart,String midend,String end){ List l = new ArrayList(); StringBuffer sb = new StringBuffer(); StringTokenizer st = new StringTokenizer(src,DELIM,true); boolean isFirst = true; while(st.hasMoreTokens()){ StringBuffer sb1 = new StringBuffer(sb.toString()); if(sb1.length()==0){ String startTag = isFirst ? start : midstart; sb1.append(startTag); } String next = st.nextToken()+(st.hasMoreTokens()?st.nextToken():""); System.out.println(next); sb1.append(next); String endTag = st.hasMoreTokens()?midend:end; StringBuffer sb2 = new StringBuffer(sb1.toString()); sb1.append(endTag); if(sb1.length()>MAX_LENGTH){ l.add(sb.append(midend).toString()); if(endTag.equals(end)) { l.add(midstart+next+endTag); break; } sb.setLength(0); sb.append(midstart); sb.append(next); isFirst = false; }else{ if(!st.hasMoreTokens()){ l.add(sb1.toString()); isFirst = false; } else sb = sb2; } } return l; } public static void main(String[] args){// String s = "在于对任何人都能敞开心扉,坦诚相待。即使坦率地表明自己的意见也不会使对方感到压力。真实的你非常的敏锐和感性,好恶分明。由于你情绪波动很大,性格多变,也经常会为理想与现实的差距感到烦恼。但是幸运的你总是能得到周围的贵人相助而摆脱困境。所以无论面对任何情况都要不忘随机应变和保持幽默感。记住成功的秘诀就是无论对上司下属都要竭力相助。";// String s = "你好"; String s = "黑豹在乎面子、自尊、立场<br>小小的热心<br>希望自己聪明时髦<br>充满攻击性、但却容易放弃<br>正义感强<br>容易受伤<br>喜欢黑色但也常被白色所吸引<br>主语的使用频率较高<br>喜欢新鲜事物<br>喜欢当领导者<br>希望永远在第一线<br>享受被人关照<br>喜怒哀乐溢于言表<br>领先摆脱型<br>时髦<br>"; List ss = incise(s,"趣占(直接回复"+"XM"+"可继续):","趣占:","-待续-","-完-"); for(int i=0;i<ss.size();i++){ System.out.println(ss.get(i)); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -