• C#中的流_字节_字符_字符串之间的相互转换


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    namespace 流_字节_字符_字符串
    {
        class Program
        {
            #region 简单介绍
            //流:二进制
    
            //字节:无符号整数
    
            //字符:Unicode编码字符
    
            //字符串:多个Unicode编码字符 
            #endregion
            static void Main(string[] args)
            {
                //byte a = 99;
                //byte b = 199;
                //byte c =(byte) (a + b);//这边溢出等于42
                //Console.WriteLine(c);
    
                string str = "huage1234";
    
                using (MemoryStream m_stream = new MemoryStream())
                {
                    Console.WriteLine(string.Format("初始字符串:{0}", str));
                    if (m_stream.CanWrite)//如果可写入
                    {
                        byte[] strBytes = Encoding.Default.GetBytes(str);//string->byte[]
                        //从数组中的第一个位置开始写入,长度为3,写完之后stream里面有数据
                        m_stream.Write(strBytes, 0, 3);//byte[]->stream
                        Console.WriteLine("现在Stream.Postion在第{0}位置", m_stream.Position + 1);
                    }
                    byte[] resBytes = new byte[m_stream.Length];
                    m_stream.Position = 0;//这边要设置一下stream的起始位置,不然读取的时候从不是起始位置读取到不全的数据
                    var count = m_stream.Read(resBytes, 0, (int)resBytes.Length);//stream->byte[]
                    var resStr = Encoding.Default.GetString(resBytes);//byte[]->字符串
                    Console.WriteLine(resStr);
                }
    
                char[] charArr = str.ToCharArray();//string->char[]
                string res = new string(charArr);//char[]->string
    
                string charStr = "";
                foreach (var a in charArr)  //char[]->string
                    charStr += a;
    
                byte[] charBytes = Encoding.Default.GetBytes(charArr);//char[]->byte[]
                char[] byteChar = Encoding.Default.GetChars(charBytes);//byte[]->char[]
    
                byte[] charBytes1 = new byte[charArr.Length];
                char[] byteChar1 = new char[charBytes1.Length];
    
                for (var i = 0; i < charArr.Length; i++)
                    charBytes1[i] = Convert.ToByte(charArr[i]);//char[]->byte[]
    
                for (var j = 0; j < charBytes1.Length; j++)
                    byteChar1[j] = Convert.ToChar(charBytes1[j]);//byte[]->char[]
    
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    view如何被添加到window上并显示出来
    事件分发机制
    绘制机制
    setContentView
    消息机制——handler
    布局文件是如何被解析的?
    Xamarin.ios引用第三方SDK
    Xamarin.ios——First APP
    UITextView 文本垂直居中
    从NavigationController 下的UITableView中移除 header
  • 原文地址:https://www.cnblogs.com/huage-1234/p/8125374.html
Copyright © 2020-2023  润新知