有没有一种简单的方法可以将char[]数组重新转换为Int32[]
本文关键字:数组 新转换 转换 Int32 char 一种 简单 有没有 方法 | 更新日期: 2023-09-27 17:59:26
我正在编写一个C#程序,从一系列文本文件中清除扩展的ASCII字符(示例在我的输入字符串中)。这是我遇到的。虽然我可以在for
循环中将char
重铸为Int32
,但我想看看是否有办法将数组重铸为Int32
值?在一个完美的世界里,我想直接传递一个处理方法的Int32
数组。现在,我正计划创建一个方法,它接受char
数组并返回一个Int32
数组。有没有一种更简单的方法可以做到这一点,类似于我在代码中包含的注释?
string value = "Slide™1½”C4®";
byte[] asciiValue = Encoding.ASCII.GetBytes(value); // byte array
char[] array = value.ToCharArray(); // char array
/*
is there something like
Int32[] int32Array = array[].ToInt32();
*/
Console.WriteLine("CHAR'tBYTE'tINT32");
for (int i = 0; i < array.Length; i++) {
char letter = array[i];
byte byteValue = asciiValue[i];
Int32 int32Value = array[i];
/*
... evaluate int32Value and do stuff ...
*/
Console.WriteLine("{0}'t{1}'t{2}", letter, byteValue, int32Value);
}
Console.ReadLine();
我的计划B:
private Int32[] RecastCharArray(char[] array)
{
Int32[] int32Value ;
for (int i = 0; i < array.Length; i++) {
int32Value[i] = array[i];
}
return int32Value;
}
您可以使用LINQ。
char[] array = new char[] { 'a', 'b', 'c', '1', '2', '3' };
int[] int32Value = array.Select(r=> (int) r).ToArray();
如果您想将数字字符转换为int
,如将字符'1'
更改为数字1
,则可以执行以下操作:
char[] array = new char[] { '1', '2', '3', '4' };
int[] intArray = array.Where(char.IsDigit)
.Select(r => (int) char.GetNumericValue(r))
.ToArray();
这将为您提供数字表示,而不是ASCII值。
使用LINQ?
char[] array = value.ToCharArray();
int[] newarray = array.Select(c => (int)c).ToArray();
您可以使用Array.ConvertAll
:
int[] ints = Array.ConvertAll<char, int>(chars, c => (int) c);