文档章节

java String转化成byte或byte[]

b
 buleberry
发布于 2014/03/29 11:00
字数 395
阅读 7571
收藏 3

网上找的全是String转化成byte[]的,好不容易找到能转化成byte的。

String类型和Byte以及Byte数组之间的转换

老鸟跳过. 只是简单介绍了一下如何利用UnicodeEncoding实现String类型和Byte以及Byte数组之间的转换. 实例代码取自MSDN.

 

首先理解一个概念:

      编码是一个将一组 Unicode 字符转换为一个字节序列的过程。解码是将一个编码字节序列转换为一组 Unicode 字符的过程。

 

废话不说, 放出代码.

复制代码

using System;
using System.Text;

class UnicodeEncodingExample {
   
public static void Main() {
       
// 实例化一个UnicodeEncoding对象,用于转换.
       UnicodeEncoding unicode = new UnicodeEncoding();

       
// 创建一个包含Unicode码的字符串.
       String unicodeString =
           
"This Unicode string contains two characters " +
           
"with codes outside the traditional ASCII code range, " +
           
"Pi (\u03a0) and Sigma (\u03a3).";
       Console.WriteLine(
"Original string:");
       Console.WriteLine(unicodeString);

       
// 把String类型转换成Byte[]数组
       Byte[] encodedBytes = unicode.GetBytes(unicodeString);
       Console.WriteLine();
       Console.WriteLine(
"Encoded bytes:");
       
foreach (Byte b in encodedBytes) {
           Console.Write(
"[{0}]", b);
       }
       Console.WriteLine();

       
// 把Byte[]数组转换成String
       String decodedString = unicode.GetString(encodedBytes);
       Console.WriteLine();
       Console.WriteLine(
"Decoded bytes:");
       Console.WriteLine(decodedString);
   }
}


复制代码

我们用到了UnicodeEncoding这个类.这个类还提供了比如Char[]类型和Byte[]之间的转换.很方便.

 

如果是把String类型转换成Byte类型,而不是Byte数组.可以使用Byte.Parse()方法.需要注意的是: String必须符合Format条件.一般只可以包含空白,以及一个0~255之间的数字.

Sample:

复制代码

//可以转换
string str1 = "  255  ";
Console.WriteLine(Byte.Parse(str1));

//报错,FormatException
string str2 = "a string";
Byte.Parse(str2);

//报错,OverflowException
string str3 = "256";
Console.WriteLine(Byte.Parse(str3));

复制代码

 

 

 

详细: http://msdn.microsoft.com/zh-cn/library/k0s9b1y3(VS.95).aspx

        http://msdn.microsoft.com/zh-cn/library/system.text.unicodeencoding.aspx

 


© 著作权归作者所有

共有 人打赏支持
b
粉丝 1
博文 62
码字总数 33383
作品 0
南京
私信 提问
加载中

评论(2)

b
buleberry

引用来自“jianglu188”的评论

这明显是c#吧 我了个去

是c#.....

jianglu188
jianglu188
这明显是c#吧 我了个去
Java中byte与16进制字符串的互相转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和...

毛朱
2013/12/09
0
0
Java中byte与16进制字符串的互相转换

ava中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低...

zhangyujsj
2013/11/26
0
1
java byte数据类型详解

Java代码 public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length()......

buleberry
2014/04/09
0
0
php实现java的byte数组转换 附带java解密代码和php解密代码

php实现java的byte数组转换 由于工作需要,在网上找了个php实现java的byte数组转换的类。对照java的byte数组,发现两个结果是一致的,证明好使。附加上我的用php实现java附件解密代码 <?php ...

李佳顺
2014/01/03
0
0
字符编码知识

什么是编码? 字符‘中’, 用unicode表示为:0x4e2d, 用gb2312表示为: 0xd6d0, 这就是编码, 将某种形式信息转化为其它形式. 什么是解码? 把0x4e2d这样信息转化为'中' 为什么会存在编解码这样的...

晨曦之光
2012/03/09
59
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
6
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
10
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部