c#中,怎样同时把多行string转换为double
我的string会出现在textbox1中,可能是一行,也可能是多行,效果如下:{lat=-36.123456789,lng=174.123456789}或者{lat=-...
我的string会出现在textbox1中,可能是一行,也可能是多行,效果如下:
{lat=-36.123456789,lng=174.123456789}
或者
{lat=-36.123456789,lng=174.12342326789}
{lat=-36.124346789,lng=174.12334356789}
{lat=-36.12333329,lng=174.12342326789}
{lat=-36.123536789,lng=174.1674456789}
。。。 。。。
我现在用以下的程序可以做到把一行string转换为double,并显示在textbox2中:
string S1,S2,S = textBox1.Text;
string[] x = S.Split(new char[] { ',' });
string y = x[0].ToString();//{lat=-36.12333333
string z = x[1].ToString();//lng=174.333333
S1 = y.Substring(y.IndexOf('=')+1);
S2 = z.Substring(z.IndexOf('=') + 1, z.IndexOf('}') - 5);
double f1 = double.Parse(S1), f2 = double.Parse(S2);
textBox2.Text = f1.ToString()+" "+f2.ToString();
现在我想要一步把所有string同时转换,请问需要怎样做? 展开
{lat=-36.123456789,lng=174.123456789}
或者
{lat=-36.123456789,lng=174.12342326789}
{lat=-36.124346789,lng=174.12334356789}
{lat=-36.12333329,lng=174.12342326789}
{lat=-36.123536789,lng=174.1674456789}
。。。 。。。
我现在用以下的程序可以做到把一行string转换为double,并显示在textbox2中:
string S1,S2,S = textBox1.Text;
string[] x = S.Split(new char[] { ',' });
string y = x[0].ToString();//{lat=-36.12333333
string z = x[1].ToString();//lng=174.333333
S1 = y.Substring(y.IndexOf('=')+1);
S2 = z.Substring(z.IndexOf('=') + 1, z.IndexOf('}') - 5);
double f1 = double.Parse(S1), f2 = double.Parse(S2);
textBox2.Text = f1.ToString()+" "+f2.ToString();
现在我想要一步把所有string同时转换,请问需要怎样做? 展开
展开全部
//using System.Linq;
//using System.Drawing;须添加引用
static void Main(string[] args)
{
string s = @"{lat=-36.123456789,lng=174.12342326789}
{lat=-36.124346789,lng=174.12334356789}
{lat=-36.12333329,lng=174.12342326789}
{lat=-36.123536789,lng=174.1674456789} ";
var v = s.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Replace("{lat=", "").Replace("lng=", "").Replace("}", ""))
.Select(x => new
{
x,
xs = x.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
})
.Select(x => new PointF(Convert.ToSingle(x.xs[0]), Convert.ToSingle(x.xs[1])));
foreach (PointF p in v)
Console.WriteLine("x={0},y={1}", p.X, p.Y);
Console.ReadLine();
}
追问
你好!
我这个程序用的是vs c#的winForm,你这个程序我看着不是那么熟悉啊。。。
我不是搞编程的,客串一下写个软件。小白莫怪,,,
追答
留联系给你瞧瞧。
展开全部
用循环就可以了。
追问
谢谢!可以具体说说嘛?不怎么会编程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected void Button1_Click(object sender, EventArgs e)
{
string aa = TextBox1.Text;
for (int i = 0; i <= aa.Split().Length - 1; i++)
{
if (aa.Split()[i].ToString().Trim() != "")
{
GetValue(aa.Split()[i].ToString());
}
}
}
private void GetValue(string strValue )
{
string S1, S2, S = strValue;
string[] x = S.Split(new char[] { ',' });
string y = x[0].ToString();//{lat=-36.12333333
string z = x[1].ToString();//lng=174.333333
S1 = y.Substring(y.IndexOf('=')+1);
S2 = z.Substring(z.IndexOf('=') + 1, z.IndexOf('}') - 5);
double f1 = double.Parse(S1), f2 = double.Parse(S2);
TextBox2.Text += f1.ToString()+" "+f2.ToString() ;
}
{
string aa = TextBox1.Text;
for (int i = 0; i <= aa.Split().Length - 1; i++)
{
if (aa.Split()[i].ToString().Trim() != "")
{
GetValue(aa.Split()[i].ToString());
}
}
}
private void GetValue(string strValue )
{
string S1, S2, S = strValue;
string[] x = S.Split(new char[] { ',' });
string y = x[0].ToString();//{lat=-36.12333333
string z = x[1].ToString();//lng=174.333333
S1 = y.Substring(y.IndexOf('=')+1);
S2 = z.Substring(z.IndexOf('=') + 1, z.IndexOf('}') - 5);
double f1 = double.Parse(S1), f2 = double.Parse(S2);
TextBox2.Text += f1.ToString()+" "+f2.ToString() ;
}
更多追问追答
追问
谢谢回答! 我按照你的程序写了一下,会报错.主要是以下两个:
GetValue(aa.Split()[i].ToString());
string S1, S2, S = strValue;
报错说getvalue和strValue does not exist in current context.
请问如何应对? 还有就是你添加的button——1是起个什么功能?谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询