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, , );//byte[]->stream
Console.WriteLine("现在Stream.Postion在第{0}位置", m_stream.Position + );
}
byte[] resBytes = new byte[m_stream.Length];
m_stream.Position = ;//这边要设置一下stream的起始位置,不然读取的时候从不是起始位置读取到不全的数据
var count = m_stream.Read(resBytes, , (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 = ; i < charArr.Length; i++)
charBytes1[i] = Convert.ToByte(charArr[i]);//char[]->byte[] for (var j = ; j < charBytes1.Length; j++)
byteChar1[j] = Convert.ToChar(charBytes1[j]);//byte[]->char[] Console.ReadKey();
}
}
}
C#中的流_字节_字符_字符串之间的相互转换的更多相关文章
- 字节与字符_字节流与字符流_ASCII与Unicode_GB2312_GBK_GB18030_BIG-5
字节(Byte):通常将可表示经常使用英文字符8位二进制称为一字节. 一个英文字母(不分大写和小写)占一个字节的空间,一个中文汉字占两个字节的空间. 符号:英文标点2占一个字节,中文标点占两个字节. ...
- C#中流,字节,字符,字符串
首先要明白它们本身是由什么组成的: 流:二进制 字节:无符号整数 字符:Unicode编码字符 字符串:多个Unicode编码字符 那么在.net下它们之间如何转化呢? 一般是遵守以下规则: 流-&g ...
- C语言之“字符”与“字符串”之间的区别解析
在C语言中,“字符”与“字符串”之间,是有区别的.这一篇文章中,我们将介绍一下,在C语言中的“字符”与“字符串”,它们之间的区别. 首先,一个很明显的区别是: “字符”,使用单引号作为定界符,而“字符 ...
- JS中实现JSON对象和JSON字符串之间的相互转换
对于主流的浏览器(比如:firefox,chrome,opera,safari,ie8+),浏览器自己提供了JSON对象,其中的parse和stringify方法实现了JSON对象和JSON字符串之间 ...
- java中IO流之字节字符流的总结概述
概念 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...
- NSString Byte NSData 字节(字符)字符串
NSUTF8StringEncoding 3个字节(字符)一个中文字符 一个字节一个英文字符
- Java字节、十进制、十六进制、字符串之间的相互转换
1. 字节转10进制 直接使用(int)类型转换. /* * 字节转10进制 */ public static int byte2Int(byte b){ int r = (int) b; retur ...
- 从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)
function GetNBytesChar(s: Ansistring; n: Integer): string;var aStr: AnsiString; bStr: WideString;b ...
- carryLess小笔记001_Java中16进制与字符串之间的相互转换
笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...
随机推荐
- element-ui按需引入
{ "name": "vue-test2", "description": "A Vue.js project", &q ...
- Hadoop分布式文件系统架构部署
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wgkgood.blog.51cto.com/1192594/1332340 前言 ...
- BZOJ 4698: Sdoi2008 Sandy的卡片 后缀数组 + RMQ + 查分
题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的 ...
- 在vue中写一个跟着鼠标跑的div,div里面动态显示数据
1.div应该放在body里面,这是我放在body中的一个div里面的div <!-- 信息查看层 --> <div class="floatDiv" :styl ...
- 后台导出大量数据超时报 nginx404错误
使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi: fastcgi_connect_timeout 75; 链接 fastcgi_read_ ...
- eoLinker AMS 专业版V3.3发布:分享项目可以测试并选择分享内容等
eoLinker AMS是集API文档管理.API自动化测试.开发协作三位一体的综合API开发管理平台,是中国最大的在线API管理平台.目前eoLinker AMS已经为来自全球的超过两万家企业托管超 ...
- Vim配置持续记录
1. 家目录创建.vimrc文件 set nu # 设置行号 set tabstop=4 # tab制表符缩进 set autoindent # 自动缩进 set showmatch # 括号匹 ...
- Problem 20
Problem 20 问题网址:https://projecteuler.net/problem=20 n! means n × (n − 1) × ... × 3 × 2 × 1阶乘For exam ...
- win7下qt+opencv的环境配置
博客http://blog.csdn.net/qiurisuixiang/article/details/8665278已经完整地介绍了整个环境配置.需要一步不差按原执行.需要说明的是,几个path的 ...
- Disruptor使用
Disruptor作者,介绍Disruptor能每秒处理600万订单.这是一个可怕的数字. disruptor之所以那么快,是因为内部采用环形队列和无锁设计.使用cas来进行并发控制.通过获取可用下标 ...