字符串组排序
来源:互联网 发布:知乎 艾尔帕西诺 编辑:程序博客网 时间:2024/05/21 10:21
实现如下效果,将字符串组排序:dad,bood,bada,Admin,Good,aete,cc,Ko,Beta,Could
排序后为:Admin,aete,Beta,bada,bood,Could,cc,dad,Good,Ko
排序思路:字符串采用冒泡排序法,字符串与字符串的比较使用函数campareStr(string str1,string str2),返回1,就交字符串换位置
字符串比较思路:将字符串的每一个字符转化为ASCII进行排序,小的在前,但是a要在B的前边,所以先转换为大写字母对应的ASCII码进行比较
若转换后值相同,则按原值比较;比较结果str1中字符的ASCII码大于str2中字符的ASCII码就返回1,两个字符串交换位置
txt_strs1,是排序前的字符串组
txt_strs2,是排序后的结果
private void button4_Click(object sender, EventArgs e)
{
if (txt_strs1.Text.ToString().Trim() == "")
return;
string[] strs1 = txt_strs1.Text.ToString().Split(',');
for (int i = 0; i < strs1.Length; i++)
{
for (int j = i+1; j < strs1.Length; j++)
{
int m=campareStr(strs1[i],strs1[j]);
if(m>0)//m=0,交换
{
string strTemp = strs1[i];
strs1[i] = strs1[j];
strs1[j] = strTemp;
}
}
}
string str2 = "";
for (int i = 0; i < strs1.Length; i++)
{
str2 = str2+"," + strs1[i];
}
txt_strs2.Text = str2.Substring(1);
}
private int campareStr(string str1,string str2)
{
int m = 0;//是1交换,0不交换
char[] charArry1 = str1.ToCharArray();
char[] charArry2 = str2.ToCharArray();
for (int i = 0; i < charArry1.Length&&i<charArry2.Length; i++)
{
int s1 = (int)charArry1[i];
int s2 = (int)charArry2[i];
if (((s1 >= 65 && s1 <= 90) || (s1 >= 97 && s1 <= 122)) && ((s2 >= 65 && s2 <= 90) || (s2 >= 97 && s2 <= 122)))//是字符串
{
if(s1>=97)//将小写转为大写
{
s1 = s1 - 32;
}
if (s2 >= 97)
{
s2 = s2 - 32;
}
if (s1 == s2)//相等则按原状况相比
{
//直接比较ASCII码,小的在前
if ((int)charArry1[i] > (int)charArry2[i])
{
m = 1;
break;
}
if ((int)charArry1[i] < (int)charArry2[i])
{
m = 0;
break;
}
}
else
{
if (s1 > s2)
{
m = 1;
break;
}
else
{
m = 0;
break;
}
}
}
else//直接比较ASCII码,小的在前
{
if (s1 > s2)
{
m = 1;
break;
}
if (s1 < s2)
{
m = 0;
break;
}
}
}
return m;
}
- 字符串组排序
- 字符串组排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序。
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 字符串排序
- 软件工程同UML和RUP的关系
- 编写你自己的单点登录(SSO)服务
- GridView动态创建模板并绑定
- How to compile kernel modules for the kernel 2.6
- 大家来见识一下最牛的Domino服务器,就2台PC服务器注册13000用户,并发1000多
- 字符串组排序
- javaeye 无法访问
- 把char定义为有/无符号类型,如同signed char/unsigned char
- 用YSlow评分插件分析我们页面
- 简单网页源码数据提取
- 学习gcc/gnu
- 定义临时集合(VALUES语句的使用)
- 提取表中的各个字段
- 嵌入式软硬件初步