C#字符串转换

MYINGBEI 2008-05-27 05:23:15
怎样把 string aa="BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1"
转换为
string a1="BLUE,RED,YELLOW"
string a2="25,34,4"
string a3="1,1,1"

还有就是判断aa都是这样的格式
...全文
149 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MYINGBEI 2008-05-28
  • 打赏
  • 举报
回复
谢谢楼上各位~~~~~
那个转换的问题解决了。

还想问一个:
string aa="blue,red,blue,red,red"
string bb="12,12,13,13,14"
string cc="1,1,1,1,1"
我的意识是颜色为blue的大小为12的有1件,
颜色为red的大小为12的有1件,
颜色为blue的大小为13的有1件,
颜色为red的大小为13的有1件,
颜色为red的大小为14的有1件。

然后我想把这些数据用 gridview表格绑定出来
如: blue red
12 1 1
13 1 1
14 1 0
aa,bb,cc的长度不固定,但是,的个数都相同····
不知道这样可不可实现
希望大家帮忙~~~~~~~
MYINGBEI 2008-05-28
  • 打赏
  • 举报
回复
我说的格式是,第一个是 字符串,然后是浮点 然后是数字
遇到\开头的特殊转换 就删除
string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";

如果aa="BLUE,AA,1\r\n"就会返回错误
如果aa="BLUE,12,1\rRED,12,1...\特殊字符 字符串,浮点,数字..."这样的格式就true
不知明白没



SKY徐 2008-05-28
  • 打赏
  • 举报
回复
不受字符串中字段多少的限制!


private void go_Click(object sender, EventArgs e)
{
string AA = "BLUE,25,1,a\r\nRED,34,1,a\r\nYELLOW,4,1,a\r\nRED,34,1,a\r\nYELLOW,4,1,a";
string[] AAlist = AA.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries);
List<string> strlist = new List<string>();
for (int j=0;j<AAlist.Length ;j++)
{
string[] str = AAlist[j].Split(',');
for (int i = 0; i < str.Length; i++)
{
if (j ==0 )
{
strlist.Add(str[i].ToString());
}
else
{
strlist[i] += "," + str[i].ToString();
}
}
}
string laststring = "";
foreach (string s in strlist)
{
laststring += s + "\r\n";
}
this.label1.Text = laststring;
}
marvelstack 2008-05-28
  • 打赏
  • 举报
回复
下面写了一个方法,关于验证部分,由于你的字符串规则没有说明,需要进一步调整,返回结果就是你想要的字符串数组,

private static string [] Format()
{
string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";
//string aa = "BLUE,25,1\r\n";
//string pattern = @"^((BLUE)|(RED)|(YELLOW)),\d+,\d+\r\n$";
string pattern = @"^(((BLUE)|(RED)|(YELLOW)),\d+,\d+\r\n){2}((BLUE)|(RED)|(YELLOW)),\d+,\d+$";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
if (regex.IsMatch(aa) == false)
{
return null;//不匹配
}
string[] result = aa.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
string [] newResult = new string [3];
for (int i=0,j=0;i < result.Length;i++,j++)
{
string[] items = result[i].Split(',');
if (i == 0)
{
newResult[0] = items[0];
newResult[1] = items[1];
newResult[2] = items[2];

}
else
{
newResult[0] = newResult[0] +","+ items[0];
newResult[1] = newResult[1] + "," + items[1];
newResult[2] = newResult[2] + "," + items[2];
}
}
return newResult;
}
-过客- 2008-05-27
  • 打赏
  • 举报
回复
try...

string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";
string[] result = aa.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
{
richTextBox2.Text += s + "\n";
}


什么叫这样的格式,只给一个实例没法说你的字符串符合什么样的规律
哪些是变的,哪些是你要求不变的,说不明白就多给几个实例

111,120

社区成员

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

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

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