组A:
Auchindoun US-Horde 16802
Azgalor US-Alliance 8932
Azjol-Nerub US-Alliance 5983
Azjol-Nerub US-Horde 9172
Azshara US-Alliance 19400
Azshara US-Horde 17229
组B:
Azjol-Nerub US-Alliance 22583
Azjol-Nerub US-Horde 2212
Azshara US-Alliance 1400
问题是:如何对比出组B中的名字在组A中存在,并且算出他们的差额。注意的是这都是字符串,,我不想通过存进数据库然后作对比。。有什么好的方法?
Auchindoun US-Horde 16802
Azgalor US-Alliance 8932
Azjol-Nerub US-Alliance 5983
Azjol-Nerub US-Horde 9172
Azshara US-Alliance 19400
Azshara US-Horde 17229
组B:
Azjol-Nerub US-Alliance 22583
Azjol-Nerub US-Horde 2212
Azshara US-Alliance 1400
问题是:如何对比出组B中的名字在组A中存在,并且算出他们的差额。注意的是这都是字符串,,我不想通过存进数据库然后作对比。。有什么好的方法?
解决方案 »
- winform如何远程访问图片到picturebox
- 谁做过网站集成财富通支付的?
- 请问带水晶报表的网站发布问题?
- aspx (C#2003)在sql中创建表的问题
- Session丢失,开始在本地使用正常,传到空间上SESSION对象基本上立刻丢失,郁闷!无语!
- 简单问题
- 哪位大侠试过crystalreport for vs.net2005在web中应用的帮忙啊?
- 我用mm_menu.js做的弹出菜单,被3721给拦截了,而且IE的版本还要6.0,比较不方便,不知大家有没有什么好的做弹出菜单的方法
- tree控件用法,最好有例子。
- Session的存储对象引用的问题
- iis安装问题
- 求个正则谢谢
然后在比较
{
string[] AA = new string[]{"Auchindoun US-Horde 16802", "Azgalor US-Alliance 8932",
"Azjol-Nerub US-Alliance 5983","Azjol-Nerub US-Horde 9172" ,"Azshara US-Alliance 19400","Azshara US-Horde 17229" };
string[] BB = new string[] { "Azjol-Nerub US-Alliance 22583", "Azjol-Nerub US-Horde 2212", "Azshara US-Alliance 1400" }; int[] ret=Sub(BB, AA);计算差值
for (int j = 0; j < ret.Length; j++)
{
Response.Write(ret[j].ToString()+"---");//输出结果
}
}
protected int[] Sub(string[] BB,string[] AA)
{
int[] result=new int[BB.Length];
for (int j = 0; j < BB.Length; j++)
{
string a1 = BB[j].Substring(0, BB[j].LastIndexOf(' '));
int a2 = int.Parse(BB[j].Substring(BB[j].LastIndexOf(' ') + 1, BB[j].Length - BB[j].LastIndexOf(' ') - 1));
for (int i = 0; i < AA.Length; i++)
{
string b1 = AA[i].Substring(0, AA[i].LastIndexOf(' '));
int b2 = int.Parse(AA[i].Substring(AA[i].LastIndexOf(' ') + 1, AA[i].Length - AA[i].LastIndexOf(' ') - 1));
if (a1 == b1)
{
int s = a2 - b2;
result[j]= s > 0 ? s : -s;
}
}
}
return result;
}
"Azjol-Nerub US-Alliance 5983","Azjol-Nerub US-Horde 9172" ,"Azshara US-Alliance 19400","Azshara US-Horde 17229" };
string[] BB = new string[] { "Azjol-Nerub US-Alliance 22583", "Azjol-Nerub US-Horde 2212", "Azshara US-Alliance 1400" };
这样要手写进去,不行。。假如我组B的数据有几百条呢?
string arrA="Auchindoun US-Horde 16802\r\n
Azgalor US-Alliance 8932\r\n
Azjol-Nerub US-Alliance 5983\r\n
Azjol-Nerub US-Horde 9172\r\n
Azshara US-Alliance 19400\r\n
Azshara US-Horde 17229"string arrB="Azjol-Nerub US-Alliance 22583\r\n
Azjol-Nerub US-Horde 2212\r\n
Azshara US-Alliance 1400"
foreach(string a in arrA.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)
{
string aname="";
int aprice=0;
GetNameAndPrice(a,out aname,out aprice);
foreach(string b in arrB.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)
{
string bname="";
int bprice=0;
GetNameAndPrice(a,out bname,out bprice);
if(aname==bname)
Console.WriteLine(bname+"差额是"+(bprice-aprice).ToString());
}
}
private void GetNameAndPrice(string str,out string name,out int price)
{
name="";
price=0;
string[] item=str.Split(' ');
name=item[0]+" "+item[1];
price=int.Parse(item[2]);
}
我要在一个网站上获取一堆数据出来,这个网:http://www.103303226.cn/ 我就截取一部分数据吧:
1 Aegwynn - Alliance 10492
2 Aegwynn - Horde 27756
3 Aerie Peak - Alliance 30630
4 Aerie Peak - Horde 38930
5 Agamaggan - Horde 577
6 Aggramar - Alliance 14430
7 Akama - Alliance 26508
8 Akama - Horde 1366
9 Alexstrasza - Alliance 228
10 Alexstrasza - Horde 27024
这个是直接从网站复制下来的,我要对比的时候也是要整个复制粘贴进去。
其实我发觉我是不会把这堆字符分别拆开成Aegwynn - Alliance 10492 ,Aegwynn - Horde 27756 ,Aerie Peak - Alliance 30630 (后面省略) 只要拆开了就可以存到hashtable进去,后面我就会处理了!
"Azjol-Nerub US-Alliance 5983","Azjol-Nerub US-Horde 9172" ,"Azshara US-Alliance 19400","Azshara US-Horde 17229" };
string[] BB = new string[] { "Azjol-Nerub US-Alliance 22583", "Azjol-Nerub US-Horde 2212", "Azshara US-Alliance 1400" };
Hashtable ht = new Hashtable();
Hashtable ht1 = new Hashtable();
for (int i = 0; i < AA.Length; i++)
{
//AA[i] = AA[i].Replace(' ', '|');
ht.Add(AA[i].Split(' ')[0] + AA[i].Split(' ')[1], AA[i].Split(' ')[2]);
}
for (int j = 0; j < BB.Length; j++)
{
ht1.Add(BB[j].Split(' ')[0] + BB[j].Split(' ')[1], BB[j].Split(' ')[2]);
}
Dictionary<string, string> dic2= new Dictionary<int, string>();
string strA="Auchindoun US-Horde 16802
Azgalor US-Alliance 8932
Azjol-Nerub US-Alliance 5983
Azjol-Nerub US-Horde 9172
Azshara US-Alliance 19400
Azshara US-Horde 17229"
string strA="Azjol-Nerub US-Alliance 22583
Azjol-Nerub US-Horde 2212
Azshara US-Alliance 1400"
foreach(string a in strA.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)//根据回车换行分割串
{
dic.Add(a.Split(new char[1]{''})[0]+a.Split(new char[1]{''})[1],a.Split(new char[1]{''})[2]))
}
foreach(string a in strB.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)
{
dic2.Add(a.Split(new char[1]{''})[0]+a.Split(new char[1]{''})[1],a.Split(new char[1]{''})[2]))
} foreach (KeyValuePair<string, string> kvp in dic2)
{
if(dic.ContainsKey(kvp.Key))
{
dic[kvp.Key]=(int)dic[kvp.Key]-int.Parse(kvp.Value)
}
}
{ }
foreach(string a in strB.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries))
{ }
根据空格分隔:string str="Arathor US-Alliance 18000";
string s1=str.split(' ')[0]+" "+str.split(' ')[1]' //Arathor US-Alliance
string s2=str.split(' ')[2] //18000