截取字符串string[],其中string[index] 是可變數據,,,給出代碼解決問題者獨得50分,解決完就接貼!!!!

treamboy 2003-01-15 12:38:10
各位:
新手阿,請多指教.

有字符串 "", "9 henry", "12 chap", "123 victior" .....12個,有空字符串其中非空字符串中都會有空格.並空格前字符位數最多為3位數 , 空格後最多為7位,現在想分別得到空格前和空格後的string[], . 問:Substring(int, int) 是以基值0.開始的吧? 我應該怎樣操作,並我自己寫了點代碼,就是有錯,該怎樣改????謝謝!!!
查找字付,得到最後一個字付,并返回以1為基直開始的index
public int getpos(string str1,string str2)
{
int ipos= 0,i;
if((str1.Length==0)||(str2.Length!=1))
{ ipos = 0;
}
else
{
for(i=1;i<=str1.Length;i++)
{
if(str1.Substring(i,1)==str2)
return i;
}
}
return ipos;
}
//--------------------
其中 arrgPlayerNo ,arrgPlayerNo ,arrhPlayerNo ,arrhPlayerName 都為string[12]
int int ipos=0;
for(int k=0;k<12;k++)
{ if( arrGuestPlayer[k]=="")
{ arrgPlayerNo[k]="";
arrgPlayerName[k] = "";
}
else{

ipos = getpos(arrGuestPlayer[k]," ");
arrgPlayerNo[k] = arrGuestPlayer[k].Substring(1,ipos).Trim();
arrgPlayerName[k] = arrGuestPlayer[k].Substring(ipos,3).Trim();
}
}
for(int k=0;k<12;k++)
{
if(arrHostPlayer[k]=="")
{ arrhPlayerNo[k] = "";
arrhPlayerName[k] = "";
}
else {
ipos = getpos(arrHostPlayer[k], " ") ;
arrhPlayerNo[k] = arrHostPlayer[k].Substring(1,ipos).Trim();
arrhPlayerName[k] = arrHostPlayer[k].Substring(ipos,3).Trim();
}
}
...全文
154 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
henryfan1 2003-01-15
  • 打赏
  • 举报
回复
string[] sub=text.Split(new char[' '])
CSharpDotNet888 2003-01-15
  • 打赏
  • 举报
回复
声明一个字符串数组存入你的12个字符串
用一个for()
对每个字符串操作:
先检查它trim()后的length是否大于0,
然后split(new char[' ']);
把其它字符串存入另一个字符串数组,就成了!
mikexwu 2003-01-15
  • 打赏
  • 举报
回复
看来你对字符处理不怎么熟,你可以可以多看一写字符处理方面的help
http://expert.csdn.net/Expert/topic/1351/1351193.xml?temp=.4160272
http://expert.csdn.net/Expert/topic/1346/1346643.xml?temp=.3224146
ismezy2002 2003-01-15
  • 打赏
  • 举报
回复
string[] arrgPlayerNo = new string[arrHostPlayer.Length];
string[] arrgPlayerName = new string[arrHostPlayer.Length];
for(int i =0; i < arrHostPlayer.Length; i++)
{
string[] tmp = arrHostPlayer[i].Split(new char[]{' '});
if(tmp.Length == 2)
{
arrgPlayerNo[i] = tmp[0];
arrayPlayerName[i] = tmp[1];
}
else
{
arrgPlayerNo[i] = "";
arrgPlayerName[i] = "";
}
}
treamboy 2003-01-15
  • 打赏
  • 举报
回复
boatinriver(我的虫子) 你的方法不可取,,,不過,從你那裡我看到靈感了,
我上之所以出錯是Substring(int index,int length) 的length超出範圍
將上句改為:arrhPlayerName[k] = arrHostPlayer[k].Substring(ipos,arrHostPlayer[k].Length-ipos).Trim(); 就ok了
boatinriver 2003-01-15
  • 打赏
  • 举报
回复
string[] str1,str2;\\分别记录数字和字符串
for(int i = 0; i < str.Length; i ++)
{
for(int j = 0; j < str[i].Length; j ++)
{
if((char)(str[i][j]) == " ")
{
for(int k = 0; k < j; k ++)
{
str1[i] +=(char)(str[i][k]);
}
for(int l = k; k < str[i].Length; k ++)
{
str2[i] +=(char)(str[i][l]);
}
}
}
}
treamboy 2003-01-15
  • 打赏
  • 举报
回复
ismezy2002(扬) ..我有想過Split, 我要操作的 是string[12] 並不是單個字符串, 我要的結果是把空格前的單獨存入一個string[12] ,空格後也存string[12]中,分別是兩個以基值0開始11結束的string[],阿


treamboy 2003-01-15
  • 打赏
  • 举报
回复
ismezy2002(扬) ..我有想過Split, 我要操作的 是string[12] 並不是單個字符串, 我要的結果是把空格前的單獨存入一個string[] ,空格後也存string[]中
treamboy 2003-01-15
  • 打赏
  • 举报
回复
mikexwu() 是不是給錯地址了????....請注意,我這並不是簡單的字符取甚麼左幾位,右幾位的阿.我用Substring()截取動態string就是有錯. 截取固定的長度我已正確!
ismezy2002 2003-01-15
  • 打赏
  • 举报
回复
string str = "123 456 789";
string[] strArray = str.Split(new Char[]{' '});

// strArray[0] = 123;
// strArray[1] = 456;
// strArray[2] = 789;
treamboy 2003-01-15
  • 打赏
  • 举报
回复
Split ? 我查過online MSDN but 英文阿,在c#中怎麼用?
微軟查得:
If capturing groups are used in a Regex.Split expression, the capturing groups are included in the resulting string array. The following example would yield the array items "one", "-", "two", "-", "banana".

Regex r = new Regex("(-)"); // Split on hyphens.
string[] s = r.Split("one-two-banana");


Regex 是甚麼類型????得到的結果是; string[0] = "one"; string[1] = "two"...string[2] = "banana" ????
可我要的結果是:如:arrHostPlayer[0] = "9 henry",
arrHostPlayer[1] = "12 chap",
........
arrHostPlayer[11] = "";
.........................................
arrgPlayerNo[0] = "9"; arrgPlayerName[0] = "henry";
arrgPlayerNo[1] = "12"; arrgPlayerName[1] = "chap";
.....
..............
arrgPlayerNo[11] ="'; arrgPlayerName[11] = "";
具體怎樣用???請給出代碼..謝了.

ismezy2002 2003-01-15
  • 打赏
  • 举报
回复
UP,用Split可以分割字串

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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