这可能是一个非常荒谬的问题,但我无法弄清楚如何将用户的输入导入字节数组。由于用户输入始终是字符串格式,因此需要进行对话,但是他输入的数字在数组中必须相同。例如:
Console.Write("Enter a number: ");
string text = Console.ReadLine();
/* Lets assume the user entered 22, 101, 1
How would I get those exact numbers in byte[]
*/
byte[] arr = new Byte[] {text};
更新:我期待得到的是
byte[] arr = new Byte[] {22, 101, 1};
答案 0 :(得分:2)
Console.Write("Enter a number: ");
string text = Console.ReadLine();
byte[] byteArrayUTF= System.Text.Encoding.UTF8.GetBytes (text);
byte[] byteArrayASCII= System.Text.Encoding.ASCII.GetBytes (text);
您可以在此处找到有关UTF8 and ASCII
之间差异的更好解释Unicode是ASCII的超集,数字0-128具有相同的值 意思是ASCII,因为它们具有Unicode。
(来自更新)我认为您实际上正在寻找将输入字符串(逗号分隔值)转换为字节数组。如果是这样你可以使用thm如下:
string text = Console.ReadLine();
byte[] byteArr = text.Split(',').Select(x => Convert.ToByte(x)).ToArray();
答案 1 :(得分:1)
虽然其他答案解释了如何将$('#test12').click(function() {
$('#narrative').fadeOut('fast');
$('#narrative').empty();
var numb1 = Math.floor(Math.random() * 4) + 1;
var numb2 = Math.floor(Math.random() * 4) + 1;
var numb3 = Math.floor(Math.random() * 4) + 1;
var numb4 = Math.floor(Math.random() * 4) + 1;
var numb5 = Math.floor(Math.random() * 4) + 1;
var numb6 = Math.floor(Math.random() * 4) + 1;
var numb7 = Math.floor(Math.random() * 4) + 1;
var numb8 = Math.floor(Math.random() * 4) + 1;
$("#sel1").val(numb1).change();
$("#sel2").val(numb2).change();
$("#sel3").val(numb3).change();
$("#sel4").val(numb4).change();
$("#sel5").val(numb5).change();
$("#sel6").val(numb6).change();
$("#sel7").val(numb7).change();
$("#sel8").val(numb8).change();
});
转换为string
,但是
我相信你真正想要的是将数字变成byte[]
byte[]
这将在每var input = "22, 101, 1";
var numbers = input.Split(',')
.Select(p => byte.Parse(p));
分割输入,并将每个部分转换为整数。
答案 2 :(得分:1)
这使用LINQ-to-Objects到"管道"从字符串到字符串数组到字节序列到字节数组:
var arr = text
.Split(',')
.Select(digits => Byte.Parse(digits))
.ToArray();
答案 3 :(得分:0)
您可以使用GetBytes函数将字符串转换为字节。
byte[] arr = Encoding.ASCII.GetBytes(text)
byte[] arr = System.Text.UTF8Encoding.UTF8.GetBytes(text)
byte[] arr = Encoding.Unicode.GetBytes(text)
如果您正在寻找特定的编码类型,可以使用以下命令将其他标准编码类型转换为.NET提供的类型。
byte[] arr = GetStringEncoding(StringEncodingType.CHARSET_UTF_16BE_CODEPAGE).GetBytes(text);
public static Encoding GetStringEncoding(StringEncodingType type)
{
switch (type)
{
case StringEncodingType.ASCII:
return Encoding.ASCII;
case StringEncodingType.Unicode:
return Encoding.Unicode;
//return Encoding.UTF7;
case StringEncodingType.UTF8:
return Encoding.UTF8;
//case StringEncodingType.CHARSET_UTF_16LE_CODEPAGE:// 1200, same as unicode
case StringEncodingType.CHARSET_UTF_16BE_CODEPAGE:// 1201,
case StringEncodingType.CHARSET_UTF_32LE_CODEPAGE:// 12000,
case StringEncodingType.CHARSET_UTF_32BE_CODEPAGE:// 12001,
case StringEncodingType.CHARSET_WINDOWS_1251_CODEPAGE:// 1251,
case StringEncodingType.CHARSET_WINDOWS_1252_CODEPAGE:// 1252,
case StringEncodingType.CHARSET_WINDOWS_1253_CODEPAGE:// 1253,
case StringEncodingType.CHARSET_WINDOWS_1255_CODEPAGE:// 1255,
case StringEncodingType.CHARSET_ISO_2022_JP_CODEPAGE:// 50220,
case StringEncodingType.CHARSET_ISO_2022_CN_CODEPAGE:// 50227,
case StringEncodingType.CHARSET_ISO_2022_KR_CODEPAGE:// 50225,
case StringEncodingType.CHARSET_ISO_8859_5_CODEPAGE:// 28595,
case StringEncodingType.CHARSET_ISO_8859_7_CODEPAGE:// 28597,
case StringEncodingType.CHARSET_ISO_8859_8_CODEPAGE:// 28598,
case StringEncodingType.CHARSET_BIG5_CODEPAGE:// 950,
case StringEncodingType.CHARSET_GB18030_CODEPAGE:// 54936,
case StringEncodingType.CHARSET_EUC_JP_CODEPAGE:// 20932,
case StringEncodingType.CHARSET_EUC_KR_CODEPAGE:// 51949,
case StringEncodingType.CHARSET_SHIFT_JIS_CODEPAGE:// 932,
case StringEncodingType.CHARSET_IBM855_CODEPAGE:// 855,
case StringEncodingType.CHARSET_IBM866_CODEPAGE:// 866,
case StringEncodingType.CHARSET_KOI8_R_CODEPAGE:// 20866,
case StringEncodingType.CHARSET_MACCYRILLIC_CODEPAGE:// 10007,
case StringEncodingType.CHARSET_HZ_GB_2312_CODEPAGE:// 52936,
//case StringEncodingType.CHARSET_X_ISO_10646_UCS_4_3412_CODEPAGE:// 12000, same as CHARSET_UTF_32LE_CODEPAGE
//case StringEncodingType.CHARSET_X_ISO_10646_UCS_4_2143_CODEPAGE:// 12000, same as CHARSET_UTF_32LE_CODEPAGE
case StringEncodingType.CHARSET_WINDOWS_874_CODEPAGE:// 874
return Encoding.GetEncoding((int)type);
default:
throw new System.NotSupportedException("Error Missing String Encoding Type:" + type.ToString());
}
}
public enum StringEncodingType // the numbers are the codepage
{
Unknown = -1,
ASCII = 20127,
Unicode = 1200,
UTF8 = 65001,
//CHARSET_UTF_16LE_CODEPAGE = 1200, same as unicode
CHARSET_UTF_16BE_CODEPAGE = 1201,
CHARSET_UTF_32LE_CODEPAGE = 12000,
CHARSET_UTF_32BE_CODEPAGE = 12001,
CHARSET_WINDOWS_1251_CODEPAGE = 1251,
CHARSET_WINDOWS_1252_CODEPAGE = 1252,
CHARSET_WINDOWS_1253_CODEPAGE = 1253,
CHARSET_WINDOWS_1255_CODEPAGE = 1255,
CHARSET_ISO_2022_JP_CODEPAGE = 50220,
CHARSET_ISO_2022_CN_CODEPAGE = 50227,
CHARSET_ISO_2022_KR_CODEPAGE = 50225,
CHARSET_ISO_8859_5_CODEPAGE = 28595,
CHARSET_ISO_8859_7_CODEPAGE = 28597,
CHARSET_ISO_8859_8_CODEPAGE = 28598,
CHARSET_BIG5_CODEPAGE = 950,
CHARSET_GB18030_CODEPAGE = 54936,
CHARSET_EUC_JP_CODEPAGE = 20932,
CHARSET_EUC_KR_CODEPAGE = 51949,
CHARSET_SHIFT_JIS_CODEPAGE = 932,
CHARSET_IBM855_CODEPAGE = 855,
CHARSET_IBM866_CODEPAGE = 866,
CHARSET_KOI8_R_CODEPAGE = 20866,
CHARSET_MACCYRILLIC_CODEPAGE = 10007,
CHARSET_HZ_GB_2312_CODEPAGE = 52936,
//CHARSET_X_ISO_10646_UCS_4_3412_CODEPAGE = 12000, same as CHARSET_UTF_32LE_CODEPAGE
//CHARSET_X_ISO_10646_UCS_4_2143_CODEPAGE = 12000, same as CHARSET_UTF_32LE_CODEPAGE
CHARSET_WINDOWS_874_CODEPAGE = 874
}