| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:[求助]求助朋友们
只看楼主 加入收藏
linzixiao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-10
收藏
 问题点数:0 回复次数:2 
[求助]求助朋友们

有一个用户用网络传输文本数据,为了加快数据传输速度,他希望减少网络传输的数据量,
因此在传输之前他先将文本数据编码,等到接受到文本数据后再进行解码,考虑到他传输
的文本只由小写字母构成('a'-'z'),编码算法如下,比如文本ssssddasss,变成4s2da3s,
也就是将连续出现的字母由数字加字母表示,比如ssssddasss中ssss表示为4s(不要表示为04s),
如果文本中的字母为单个字母,比如ssssddasss中的a,则表示为a,不要表示为1a。解码的算法就是
将4s2da3s展开成编码前的字符串,即ssssddasss.

编写编码和解码的方法,

类名TextEncoder

编码的方法名:public String encode(String text)

编码的方法输入数据的约束条件:(text只由'a'-'z'构成,text长度不超过150);

解码的方法名:public String decode(String text)

解码的方法输入数据的约束条件:
(text只由'a'-'z'构成及数字构成,text最后的字符必定为字母,text不存在连续字母出现,
比如4ss是不会出现的,正确的是5s,由text解码展开的字符串长度不会超过150);

搜索更多相关主题的帖子: 朋友 
2007-09-10 20:01
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
收藏
得分:0 
class TextEncoder
{
public String encode(String text){
char ch;
int count=1;
StringBuffer str = new StringBuffer();
for(int i=0; i<text.length(); i++){
ch = text.charAt(i);
for(i=i+1; i<text.length(); i++){
if(ch == text.charAt(i))
count++;
else{
i--;
break;
}
}
if(count == 1)
str.append(ch);
else
str.append(count).append(ch);
count=1;
}
return str.toString();
}
public static void main(String[] args)
{
String ddd="jfasjjjdfjssssj";
TextEncoder d = new TextEncoder();
System.out.println(d.encode(ddd));
}
}


只写了一个编码的函数,你自己按照上面的写解码的吧,要自己学着编才能进步啊
数据的约束条件可以用正则表达式来约束就行了,很简单的

天地有正气,凛烈万古存。
2007-09-10 20:50
linzixiao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-10
收藏
得分:0 

太感谢了!我去试试!希望还能看到更有粒度的解答方法!

2007-09-10 21:17
快速回复:[求助]求助朋友们
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016491 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved