java的字符截取

chw8219 2007-05-11 08:43:52
请教高手:
我现在有一段类似下面的头尾含有html标记的字符串:
String str= "<font size=2>结帖方法:点击帖子右上的管理链接,进入管理页面,在要给分的回复后的文本框中填写分数,然后输入自己的密码,点击</font>";
我现在要对标记内的中文做字符串长度截取,截取完后还需要把头尾的html标记加上去,请教如何实现?<html标记可能不只一个,但中文字符肯定包含在html标记间>
...全文
650 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chw8219 2007-05-18
  • 打赏
  • 举报
回复
结贴了,没人来了!
chw8219 2007-05-15
  • 打赏
  • 举报
回复
例如:
现有一串字符如下:
String strVal = "<font size=5><b><u>需要被截取的字符串</u></b></font>";

假如上面的字符串长度已经大于了设定的长度,那么我就要做截取:

那截取后的结果应该类似如下的字符串:
strVal = "<font size=5><b><u>需要被截取的</u></b></font>";


chw8219 2007-05-15
  • 打赏
  • 举报
回复
谢谢,biaoflying(biaoflying) !

你给的方法对我很有启发,不过,与我说的有点不同:

我碰到的问题是这样的:
我的程序接收页面post提交过来的一串字符,在把这段信息放入到数据库中时,如果长度大于设定的值,那插入数据库时必须对字符串做截取。
在做截取的时候,因为这串字符可能是包含在几个简单的html标记间的(字的显示样式),而我所要的就是 把html标记间的字符串取出,使截取该字符串的长度加上html标记的长度小于等于设定的值!
fengmingjie 2007-05-13
  • 打赏
  • 举报
回复
http://www.regexlab.com/zh/regref.htm
正则表达式的详细的介绍,你可以参考一下
biaoflying 2007-05-13
  • 打赏
  • 举报
回复
import java.util.regex.*;

public class StringHandle{
private static Pattern p;
private static Matcher m;
private static String str= "<html><font size=2>结帖方法:"+
"点击帖子右上的<html>管理链接,进入管理页面"+
",在要给分的回复后的文本框中</html>填写分数,然后输入自己的密码,点击</font></html>";
public static String getString(String str){
String regEx = "[\\u4e00-\\u9fa5][\\u4e00-\\u9fa5]+(.*)[\\u4e00-\\u9fa5][\\u4e00-\\u9fa5]+";
StringBuffer sb=new StringBuffer("<html>");
p = Pattern.compile(regEx);
m = p.matcher(str);
int i=0;
while(m.find()){
i++;
if(i%2!=0)
sb.append(m.group()+"<html>");
else
sb.append(m.group()+"</html>");
}
return sb.toString();
}
public static void main(String[] args){
System.out.println(getString(str));
}
}
输出:
<html>结帖方法:点击帖子右上的<html>管理链接,进入管理页面,在要给分的回复后的文本框中</html>填写分数,然后
输入自己的密码,点击<html>
不知道这样可不可以?如果要去掉其他的非中文字符,只要再修改一下即可。
biaoflying 2007-05-13
  • 打赏
  • 举报
回复
正则表达式,迭代。
我的java出了点问题,所以不能把代码贴出来。
chw8219 2007-05-12
  • 打赏
  • 举报
回复
正则可以,但是截取后还需要把过滤掉的html标记再补回去,组成新的字符串!
谢谢楼上的指点,能不能给个简单的例子?
For_suzhen 2007-05-12
  • 打赏
  • 举报
回复
正则可以吗?
brooksychen 2007-05-11
  • 打赏
  • 举报
回复
只说下核心的思路吧:
可以用正则表达式匹配html标签
如果中间全都是中文字符,也可以一个字符一个字符的读,用Character类的isDigit、isLetter等函数或提供的其他函数来判断是不是汉字,如果是,则开始计数……

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧