3

我有一个int[]

RXBuffer[0], RXBuffer[1],..., RXBuffer[9]

其中每个值代表一个 ASCII 码,所以 0x31 代表1, 0x41 代表A

如何将其转换为 10 个字符的字符串?

到目前为止,我已经尝试过Data = RxBuffer.ToString();。但它显示Data等于System.Int32[]哪个不是我的数据。

我怎样才能做到这一点?

4

2 回答 2

4

假设“int 数组”是 0-9 范围内的值(这是将长度为 10 的“int 数组”转换为 10 个字符的字符串的唯一方法)——有点奇怪:

string s = new string(Array.ConvertAll(RXBuffer, x => (char)('0' + x)));

但非常有效(char[]自动调整大小,字符串转换仅使用数学完成,而不是ToString())。


编辑:通过明确这些实际上是 ASCII 代码的修订,它变得更简单:

string s = new string(Array.ConvertAll(RXBuffer, x => (char)x));

虽然坦率地说,如果值是 ASCII(甚至 unicode),最好将其存储为char[]; 这涵盖了相同的范围,占用了一半的空间,并且只是:

string s = new string(RXBuffer);
于 2012-07-31T06:52:18.577 回答
3

LolCoder 所有你需要的是:

string.Join("",RXBuffer);

============== 或者==================

        int[] RXBuffer = {0,1,2,3,4,5,6,7,8,9};
        string result  =  string.Join(",",RXBuffer);
于 2012-07-31T06:54:43.053 回答