1、字符串中的字母、数字和汉字的组合是不确定的!
2、截取的依据是开始位置和长度!
3、字符串中的每段长度是固定的!
3、总长度是固定的!
如:总长度是15的字符串,前5个字符存放学号,接着8个字符存放名称,最后2个字符存放年龄!这样的字符串应如何分割?例:学001盖次 40
6 个解决方案
#1
截取后应是:
学001
盖次
40
学001
盖次
40
#2
private void button1_Click(object sender, System.EventArgs e)
{
int y=0,j=0,k=0,m=0;
this.textBox1.Text = "学001盖次 40";
//获得第一个命令行参数第一个字母
//把该字母赋给变量chLetter
char[] chLetter = this.textBox1.Text.ToCharArray(0,5);
//如果字母大于等于字符'A'
for(int i =1;i<this.textBox1.Text.Length;i++)
{
if(chLetter[i]>= 'A')
{
//同时,字母小于字符'Z'
//则该字母为大写字母
if(chLetter[i]<= 'Z')
{
y=i+1;
}
}else
//如果字母界与字符'a'和'z'之间
//则该字母为小写字母
if(chLetter[i] >= 'a' && chLetter[i] <= 'z')
{
j=j+1;
}else
//如果字母为数字
if(Char.IsDigit(chLetter[i]))
{
k=k+1;
}
else
{
m= m+1;//缺省地(以上条件都不符合),则该字母为特殊字符
}
if(m==1&&k==3)
{
this.label1.Text = this.textBox1.Text;//学001
}
}
}
{
int y=0,j=0,k=0,m=0;
this.textBox1.Text = "学001盖次 40";
//获得第一个命令行参数第一个字母
//把该字母赋给变量chLetter
char[] chLetter = this.textBox1.Text.ToCharArray(0,5);
//如果字母大于等于字符'A'
for(int i =1;i<this.textBox1.Text.Length;i++)
{
if(chLetter[i]>= 'A')
{
//同时,字母小于字符'Z'
//则该字母为大写字母
if(chLetter[i]<= 'Z')
{
y=i+1;
}
}else
//如果字母界与字符'a'和'z'之间
//则该字母为小写字母
if(chLetter[i] >= 'a' && chLetter[i] <= 'z')
{
j=j+1;
}else
//如果字母为数字
if(Char.IsDigit(chLetter[i]))
{
k=k+1;
}
else
{
m= m+1;//缺省地(以上条件都不符合),则该字母为特殊字符
}
if(m==1&&k==3)
{
this.label1.Text = this.textBox1.Text;//学001
}
}
}
#3
string a="学001盖次 40";
byte[] b=System.Text.Encoding.Default.GetBytes(a);
string c=System.Text.Encoding.Default.GetString(b,0,5);//姓名
string d=System.Text.Encoding.Default.GetString(b,5,8);//学会
string f=System.Text.Encoding.Default.GetString(b,13,2);//年龄
byte[] b=System.Text.Encoding.Default.GetBytes(a);
string c=System.Text.Encoding.Default.GetString(b,0,5);//姓名
string d=System.Text.Encoding.Default.GetString(b,5,8);//学会
string f=System.Text.Encoding.Default.GetString(b,13,2);//年龄
#4
CSTerry(Terry) 的方法挺好的
但如果可以的话,楼主将字符串这样保存可能会容易处理些
代码:
string tmp="学001|盖次|40";
string[] str=tmp.Split(new char[]{'|'});
foreach(string s in str)
{
MessageBox.Show(s.ToString());
}
结果:
学001
盖次
40
但如果可以的话,楼主将字符串这样保存可能会容易处理些
代码:
string tmp="学001|盖次|40";
string[] str=tmp.Split(new char[]{'|'});
foreach(string s in str)
{
MessageBox.Show(s.ToString());
}
结果:
学001
盖次
40
#5
参考:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=193912
#6
我自己也搞定了!不过分一定给!明天我另开贴!
#1
截取后应是:
学001
盖次
40
学001
盖次
40
#2
private void button1_Click(object sender, System.EventArgs e)
{
int y=0,j=0,k=0,m=0;
this.textBox1.Text = "学001盖次 40";
//获得第一个命令行参数第一个字母
//把该字母赋给变量chLetter
char[] chLetter = this.textBox1.Text.ToCharArray(0,5);
//如果字母大于等于字符'A'
for(int i =1;i<this.textBox1.Text.Length;i++)
{
if(chLetter[i]>= 'A')
{
//同时,字母小于字符'Z'
//则该字母为大写字母
if(chLetter[i]<= 'Z')
{
y=i+1;
}
}else
//如果字母界与字符'a'和'z'之间
//则该字母为小写字母
if(chLetter[i] >= 'a' && chLetter[i] <= 'z')
{
j=j+1;
}else
//如果字母为数字
if(Char.IsDigit(chLetter[i]))
{
k=k+1;
}
else
{
m= m+1;//缺省地(以上条件都不符合),则该字母为特殊字符
}
if(m==1&&k==3)
{
this.label1.Text = this.textBox1.Text;//学001
}
}
}
{
int y=0,j=0,k=0,m=0;
this.textBox1.Text = "学001盖次 40";
//获得第一个命令行参数第一个字母
//把该字母赋给变量chLetter
char[] chLetter = this.textBox1.Text.ToCharArray(0,5);
//如果字母大于等于字符'A'
for(int i =1;i<this.textBox1.Text.Length;i++)
{
if(chLetter[i]>= 'A')
{
//同时,字母小于字符'Z'
//则该字母为大写字母
if(chLetter[i]<= 'Z')
{
y=i+1;
}
}else
//如果字母界与字符'a'和'z'之间
//则该字母为小写字母
if(chLetter[i] >= 'a' && chLetter[i] <= 'z')
{
j=j+1;
}else
//如果字母为数字
if(Char.IsDigit(chLetter[i]))
{
k=k+1;
}
else
{
m= m+1;//缺省地(以上条件都不符合),则该字母为特殊字符
}
if(m==1&&k==3)
{
this.label1.Text = this.textBox1.Text;//学001
}
}
}
#3
string a="学001盖次 40";
byte[] b=System.Text.Encoding.Default.GetBytes(a);
string c=System.Text.Encoding.Default.GetString(b,0,5);//姓名
string d=System.Text.Encoding.Default.GetString(b,5,8);//学会
string f=System.Text.Encoding.Default.GetString(b,13,2);//年龄
byte[] b=System.Text.Encoding.Default.GetBytes(a);
string c=System.Text.Encoding.Default.GetString(b,0,5);//姓名
string d=System.Text.Encoding.Default.GetString(b,5,8);//学会
string f=System.Text.Encoding.Default.GetString(b,13,2);//年龄
#4
CSTerry(Terry) 的方法挺好的
但如果可以的话,楼主将字符串这样保存可能会容易处理些
代码:
string tmp="学001|盖次|40";
string[] str=tmp.Split(new char[]{'|'});
foreach(string s in str)
{
MessageBox.Show(s.ToString());
}
结果:
学001
盖次
40
但如果可以的话,楼主将字符串这样保存可能会容易处理些
代码:
string tmp="学001|盖次|40";
string[] str=tmp.Split(new char[]{'|'});
foreach(string s in str)
{
MessageBox.Show(s.ToString());
}
结果:
学001
盖次
40
#5
参考:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=193912
#6
我自己也搞定了!不过分一定给!明天我另开贴!