C# 在c语言中如何将装箱的二维字符串转换为二维整数数组及反之亦然#
我有一个字符串,它有一个二维数组,我需要将这些二维字符串转换成整数数组。 例如:C# 在c语言中如何将装箱的二维字符串转换为二维整数数组及反之亦然#,c#,.net-2.0,C#,.net 2.0,我有一个字符串,它有一个二维数组,我需要将这些二维字符串转换成整数数组。 例如: String temp ="[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]". 我需要2D整数数组的2D字符串值,反之亦然 static void Main(string[] args) { String temp = "[[0xFF008041, 0x24008086, 0x00000
String temp ="[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]".
我需要2D整数数组的2D字符串值,反之亦然
static void Main(string[] args)
{
String temp = "[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]";
temp = temp.Replace("[", "");
temp = temp.Replace("]", "");
string[] tempArray = temp.Split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries);
uint[] tempIntArray = tempArray.Select(x => FromHex(x)).ToArray();
}
static uint FromHex(string value)
{
uint results;
uint.TryParse(value.Substring(2), NumberStyles.HexNumber, CultureInfo.CurrentCulture, out results);
return results;
}
好吧,因为它是
.NET2.0
你不能使用更现代版本的优点,比如Linq
,我建议使用Split
,进行循环,Trim
和Convert
:
注意#1:我的工作假设字符串中的数字始终是十六进制数字
注意#2:我返回的是锯齿数组而不是多维数组,因为不能强制字符串中的所有内部数组具有相同数量的元素
String temp = "[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A], [0x0008, 0x0034B]]";
int[][] ConvertStringToJaggedArray(String input)
{
String[] Separator = { "],[", "], [", "] ,[" };
String[] OuterArray = input.Split(Separator, StringSplitOptions.RemoveEmptyEntries);
int[][] TargetArray = new int[OuterArray.Length][];
string HexString;
for (int i = 0; i < OuterArray.Length; i++)
{
String[] InnerArray = OuterArray[i].Split(',');
TargetArray[i] = new int[InnerArray.Length];
for (int j = 0; j < InnerArray.Length; j++ )
{
HexString = InnerArray[j].Trim(" []".ToCharArray());
TargetArray[i][j] = Convert.ToInt32(HexString, 16);
}
}
return TargetArray;
}
String temp=“[0xFF008041,0x24008086,0x00000000,0x00000000,0x0008383A],[0x0008,0x0034B]”;
int[]ConvertStringToJaggedArray(字符串输入)
{
字符串[]分隔符={“],[“,”],[“,”],[“};
String[]OuterArray=input.Split(分隔符,StringSplitOptions.removeMptyEntries);
int[][]TargetArray=新int[OuterArray.Length][];
六边形字符串;
for(int i=0;i
在这种情况下,您只有一个“内部”数组-它是否总是这样,或者有时可能是[[1,2,3],[4,5,6]]
?听起来基本上你需要进行字符串操作。我首先将外部数组拆分为内部数组的字符串,然后分别解析其中的每一个。这是你试图解析的json吗?你尝试了什么?在我看来像json…可能使用json解析器,而不是创建2d数组-但很难看到你到底有什么问题。如何将像“[[2,3],[4,5],[3,4]]”这样的字符串转换为二维整数数组。虽然我同意这个问题可以而且应该问得更好,但我不认为它太宽泛。不能在.net 2.0中使用Linq…也阅读问题的标签。这不回答你的问题吗?