标题:如何将textbox里面数读写到数组
只看楼主
chenfu2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-3-28
结帖率:0
已结贴  问题点数:10 回复次数:11 
如何将textbox里面数读写到数组
在textbox里面有
1,2,3,4
5,6,7,8
9,10,11,12
怎样将它读到数组中,
跪求各位神主帮忙

搜索更多相关主题的帖子: 如何 
2013-04-10 10:23
q869939686
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2013-4-10
得分:3 
在textbox中输入的是string型,需要强制转换为整形
才能输入到数组中
int[] array = new int[num];//定义数组//
array[0] = Convert.ToInt32(textBox1.Text);//强制转换为整形//
2013-04-10 10:36
shangsharon
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
威 望:7
帖 子:221
专家分:1261
注 册:2012-3-25
得分:3 
List<int> list=new List<int>;
for(int i=0;i<textbox.lines.count();i++)
{
string[] strs=textbox.lines[i].split(',');
foreach(var str in strs)
{
int j=0;
if(int.tryparse(str,out j))
{
list.add(j);
}
}
}
2013-04-10 11:09
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:3 
using System.Text.RegularExpressions;

string[] str = Regex.Split(textBox1.Text.TrimEnd("\r\n".ToCharArray()).Replace("\r\n", ","), ",");
如果要转为int数组,则在后面再加一句
int[] intArray = Array.ConvertAll<string, int>(str, s => int.Parse(s));

[ 本帖最后由 yhlvht 于 2013-4-10 12:06 编辑 ]
2013-04-10 11:52
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
得分:3 
以下是引用yhlvht在2013-4-10 11:52:47的发言:

using System.Text.RegularExpressions;
 
string[] str = Regex.Split(textBox1.Text.TrimEnd("\r\n".ToCharArray()).Replace("\r\n", ","), ",");
如果要转为int数组,则在后面再加一句
int[] intArray = Array.ConvertAll(str, s => int.Parse(s));
大神能否稍稍详细解释下这个语句么?刚好我也要用到这个方法!多谢了!
2013-04-10 17:04
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
textBox1.Text //取textBox框里的文本,因为是多行,行与行之前会有回车换行符\r\n,按他的例子,取出来应该是1,2,3,4\r\n5,6,7,8\r\n9,10,11,12
textBox1.Text.TrimEnd("\r\n".ToCharArray())    //因为不确定光标是否停在12后面,还是换到下一行了,如果换到下一行,那12后面还会有一个\r\n,TrimEnd()方法就是去掉字符串最后的字符,这里加上就是为了去掉最后的\r\n
textBox1.Text.TrimEnd("\r\n".ToCharArray()).Replace("\r\n", ",")    //然后用Replace把中间换行的\r\n替换成逗号,就成了1,2,3,4,5,6,7,8,9,10,11,12 Replace()方法两个参数,第二个参数的字符替换第一个参数的字符
Regex.Split(参数1,参数2)方法用于分割字符串,参数1是要分割的字符串,参数2是用什么符号分割,因为这里全是用逗号隔开的,所以用逗号分割,就会把字符串分割成string[]

Array.ConvertAll(str, s => int.Parse(s)); //这个是数组转换,用了Array.ConvertAll(参数1,参数2)方法,参数1是要转换的数组,参数2是一个Converter转换委托,这里只是用了lambda 表达式来创建的委托
不用lambda 表达式,也可以写成
string[] str = Regex.Split(textBox1.Text.TrimEnd("\r\n".ToCharArray()).Replace("\r\n", ","), ",");
System.Converter<string, int> con = new Converter<string, int>(convert);    //创建Converter类型的转换委托,con是该委托的引用,该委托执行convert方法
int[] intArray = Array.ConvertAll(str, con);    //把引用con传进去,委托会自动调用convert方法进行转换

//转换方法,由委托调用
public int convert(string s)
{
    return int.Parse(s);
}
2013-04-10 17:43
chenfu2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-3-28
得分:0 
回复 6楼 yhlvht
大神如果把它读到二维数组中怎么读。。。。
2013-04-10 18:07
chenfu2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-3-28
得分:0 
回复 2楼 q869939686
读到二维数组怎么办
2013-04-10 18:11
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
string[] str1 = Regex.Split(textBox1.Text.TrimEnd("\r\n".ToCharArray()), "\r\n");    //用\r\n拆到1维数组里面,每一项就是1行数据
string[][] str2 = new string[str1.Length][];    //创建不规则数组,当然创建规则的也行
for (int i = 0; i < str1.Length; i++)    //循环每一行数据
{
    str2[i] = Regex.Split(str1[i], ",");    //把每一行数据拆成数组,赋给2维数组的每一行
}
2013-04-10 18:32
chenfu2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-3-28
得分:0 
以下是引用yhlvht在2013-4-10 18:32:08的发言:

string[] str1 = Regex.Split(textBox1.Text.TrimEnd("\r\n".ToCharArray()), "\r\n");    //用\r\n拆到1维数组里面,每一项就是1行数据
string[][] str2 = new string[str1.Length][];    //创建不规则数组,当然创建规则的也行
for (int i = 0; i < str1.Length; i++)    //循环每一行数据
{
    str2 = Regex.Split(str1, ",");    //把每一行数据拆成数组,赋给2维数组的每一行
}
给力
2013-04-10 18:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-403576-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101618 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved