C# 如何在C中将字符串[]转换为int#
我是一个C#程序员,我的代码中有一个字符串问题。 我想知道如何转换此字符串:C# 如何在C中将字符串[]转换为int#,c#,C#,我是一个C#程序员,我的代码中有一个字符串问题。 我想知道如何转换此字符串: x = {"1","2","0",",","1","2","1",",","1","2","2"} 变成这样: x = {"120","121","122"} 变量x被指定为string,我希望它被指定为int。这是为了得到120到130之间的数字,在我的字符串中是3 非常感谢。您应该首先将3个字符串相加,以获得正确的“120”、“121”、“122”字符串 然后您可以使用forloop或类似的方法来执行val.
x = {"1","2","0",",","1","2","1",",","1","2","2"}
变成这样:
x = {"120","121","122"}
变量x被指定为string,我希望它被指定为int。这是为了得到120到130之间的数字,在我的字符串中是3
非常感谢。您应该首先将3个字符串相加,以获得正确的“120”、“121”、“122”字符串 然后您可以使用forloop或类似的方法来执行val.toint() 编辑:
将列表从list String更改为Int并保留相同的变量对我来说似乎没有必要我认为您可以通过以下三行来完成:
var x = new []{"1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2"};
var fullString = String.Join("", x, 0, x.Length);
// get as a string array:
// x = fullString.Split(new[] {','});
// get as an integer array:
var intArray = (fullString.Split(new[] {','}))
.Select(_ => Int32.Parse(_)).ToArray();
在步骤中,这是(1)创建字符串,(2)连接字符串,(3)在分隔符上拆分字符串(在您的示例中,分隔符似乎是逗号)
祝你好运 以下是一种使用多种字符串方法和LINQ的方法:
string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
int[] y = string.Join(string.Empty, x)
.Split(',')
.Select(s => int.Parse(s))
.ToArray();
string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
string all = string.Join("", x); // "120,121,122"
string[] parts = all.Split(','); // { "120", "121", "122" }
int i = int.MinValue; // variable which is used in below query
int[] y = parts // LINQ query
.Where(s => int.TryParse(s.Trim(), out i)) // filters out invalid strings
.Select(s => i) // selects the parsed ints
.ToArray(); // creates the final array
不知道为什么要这样做,但使用LINQ to Objects basic
String
方法可以非常简单地实现
var x = new string[] { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
var y = String.Join(String.Empty, x).Split(',');
foreach (var s in y)
Console.WriteLine(s);
更新日期2014年5月23日
根据注释,这里有一些代码可以执行您想要的操作(即,计算120-130范围内的数字)
var最小值=120;
var max=130;
变量计数=y
.Select(o=>Int32.Parse(o))
.Count(o=>(minstring[]x={“1”、“2”、“0”、“1”、“2”、“1”、“1”、“1”、“1”、“2”);
StringBuilder sb=新的StringBuilder();
foreach(x中的变量项)
{
某人附加(项目);
}
字符串str=sb.ToString();
字符串[]myArr=str.Split(',');
int[]numar=新int[myArr.Length];
对于(int i=0;i
只要稍加努力,你就能找到这一点(你不应该只是发布一个问题,下次请做一些研究),但问题无论如何都在这里:
string[] items;
items = new string[5];
int[] intitems;
intitems = new int[5];
foreach (string item in items)
{
int i = 0;
int.TryParse(items[i], out intitems[i]);
}
这是一种简单易懂的方法。循环本身就很好地解释了它。在您寻找的示例中,x
仍然是一个数组。如果您希望它是一个int
,那么它必须是120121122,或者您需要3个变量。因此,实际上您有一个字符串包含x={“1”、“2”、“0”、“1”、“2”,“1”、“1”、“2”、“2”}
?或者字符串变量x是{“1”、“2”、“0”、“1”、“1”、“1”、“1”、“2”、“2”}
?或者你有字符串数组吗?我有一个字符串数组,但你在回答中不使用LINQ来处理对象,只使用基本的字符串函数:-)哈哈,喊得好,我的心在哪里..谢谢,伙计,这帮了我。但是,我怎么能把s的值转换成整数呢?我想数一数在这之后有多少个数字在一个范围内,因为os s的值是一个字符串。你能帮我吗?要把字符串转换成整数,你可以使用静态方法Int32.Parse(s)
,我不太明白你所说的“计算一个范围内有多少个数字”是什么意思,你能再解释一下吗?我想找到这样一个范围内的总数:max=130;min=120;然后在我的示例中,总数是3。这就是我想要的:)
string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
StringBuilder sb = new StringBuilder();
foreach (var item in x)
{
sb.Append(item);
}
string str = sb.ToString();
string[] myArr = str.Split(',');
int[] numArr = new int[myArr.Length];
for (int i = 0; i < myArr.Length; i++)
{
numArr[i] = int.Parse(myArr[i]);
}
string[] items;
items = new string[5];
int[] intitems;
intitems = new int[5];
foreach (string item in items)
{
int i = 0;
int.TryParse(items[i], out intitems[i]);
}