字符串或数组的有规则比较
比如
A字符串(数组)=2 3 4 5
B----- =1 2 3 4 5 6 7 8 9
选出比如:3 4 5 6;4 5 6 7 ;5 6 7 8 ;..........
谢谢!!
问题点数:0、回复次数:7Top
1 楼realljx(抵制日货 功在千秋)回复于 2004-09-04 12:46:38 得分 0
不明白什么意思。Top
2 楼Dragon88()回复于 2004-09-04 13:06:31 得分 0
比如
A字符串(数组)= 2, 3, 4, 5
B 字符串(数组)= 1 ,2 ,3 ,4, 5, 6 ,7, 8 ,9
选出比如:3 ,4, 5, 6 ; 4 ,5 ,6 ,7 ; 5, 6, 7, 8 ;..........
就象扑克牌从A中选出刚好大于B的字符串或数组元素。
谢谢!!
Top
3 楼realljx(抵制日货 功在千秋)回复于 2004-09-04 13:59:07 得分 0
Hashtable ht = new Hashtable();
int[] a = new int[]{2,3,4,5};
int w = a.Length;
int[] tar = new int[w];
int[] b = new int[]{1,2,3,4,5,6,7,8,9};
for(int i = 0;i<b.Length-w;i++)
{
if(b[i]>a[0]&&b[i+w-1]>a[w-1])
{
Array.Copy(b,i,tar,0,w);
ht.Add(ht.Count,tar);
tar = new int[w];
}
}
for(int i = 0; i<ht.Count;i++)
{
int[] c = (int[])ht[i];
MessageBox.Show(c[0].ToString());
}Top
4 楼realljx(抵制日货 功在千秋)回复于 2004-09-04 13:59:49 得分 0
一个很笨的方法 楼主可以参考一下。/Top
5 楼realljx(抵制日货 功在千秋)回复于 2004-09-04 14:07:15 得分 0
纠正一下。
for(int i = 0;i< b.Length-w ;i++)
--〉
for(int i = 0;i< b.Length-w+1 ;i++)Top
6 楼Dragon88()回复于 2004-09-04 15:12:43 得分 0
谢谢你~
不过后面不太明白,注释以下可否?
谢谢 ~
还有,为什么,没能显示 4 5 6 7 ; 5 6 7 8 ........?
请指教.....Top
7 楼realljx(抵制日货 功在千秋)回复于 2004-09-04 15:23:39 得分 0
Hashtable ht = new Hashtable(); //用来存储匹配结果的数组
int[] a = new int[]{2,3,4,5}; //原数组
int w = a.Length; //原数组长度
int[] tar = new int[w]; //存储成功匹配目标数组(临时)
int[] b = new int[]{1,2,3,4,5,6,7,8,9}; //带匹配数组
for(int i = 0;i<b.Length-w;i++)
{
if(b[i]>a[0]&&b[i+w-1]>a[w-1])
{
//匹配成功
Array.Copy(b,i,tar,0,w);
//将结果写入哈希表备用
ht.Add(ht.Count,tar);
tar = new int[w];
}
}
//此时匹配的结果已经存储在哈希表 ht中了 如下面的数组c 你可以用 c[x] 引用匹配结果中的任何一项。
for(int i = 0; i<ht.Count;i++)
{
int[] c = (int[])ht[i];
MessageBox.Show(c[0].ToString()); //这里只是显示了 数组的第一项。
}
Top




