关于Java里面的String.getBytes()方法
关于Java里面的String.getBytes()方法
Java里面的String类型的编码方式是Unicode,根据你项目字符串的编码方式无关,这是写死的。但是如果你jvm平台使用的是GBK编码方式,那么你通过string里面的getBytes()方式获取的字符的字节是2。如果使用的是UTF-8编码的方式,那么一个字符getBytes()方式获取的字符的字节长度应该是3.
下面给个例子进行展示:
String str ="你好"; //project的字符集是UTF-8
byte[] B = str.getBytes(); //所以这里默认应该使用UTF-8进行编码
System.out.println(B.length);
System.out.println(Charset.defaultCharset());//结果是:(果然是6)
//6
//UTF-8
这里的**str.getBytes()**方法官方给出的解释是:
Encodes this String
into a sequence of bytes using the platform’s default charset, storing the result into a new byte array.
就是说**getBytes()**函数会根据平台的默认字符串返回byte[]数组,这个platform’s default charset并跟操作系统有关。当然你可以在Eclipse中设置你的项目使用的编码方式,更改项目文件的编码方式能改变平台的中的默认编码方式。
在Eclipse中可以通过选定项目,然后通过上方的工具栏Project–>Properties–>Resource处更改项目编写的文件的encoding方式。
如果我更改成默认的GBK,那么下面的例子返回的字节长度就会变成4
String str ="你好"; //project的字符集是GBK
byte[] B = str.getBytes(); //
System.out.println(B.length);
System.out.println(Charset.defaultCharset());//结果是:
//4
//GBK
关于Java里面的String.getBytes()方法相关推荐
- 如何给女朋友解释为什么Java里面的String对象是不可变的?
点击关注公众号,Java干货及时送达 String的不变性 String在Java中特别常用,相信很多人都看过他的源码,在JDK中,关于String的类声明是这样的: public final cla ...
- java里面的string类型,java中的String类型(不知道理解的好不,请教大神)
当执行String a = "abc"; 时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述) java ...
- Simple java里面的paint(Graphics g)的理解
以前写画图板时,总不理解什么时候要调用这个方法,老师说:你写了paint(g)方法后,在窗体改变时,就会调用,可是不太理解. 没写paint(g)的演示:画图板v1 1:绘制简单直线 2.执行最小化操 ...
- JAVA里面的int类型 和Integer类型,有什么不一样
JAVA里面的int类型 和Integer类型,有什么不一样 原创 2013年09月04日 23:15:11 标签: java / 2120 编辑 删除 JAVA里面的int类型 和Integer类型 ...
- Java中的String.hashCode()方法可能有问题?
过去几天,我一直在浏览Reddit上的一篇文章.这篇文章看得我要抓狂了.文章指出,Java中的String.hashCode()方法(将任意长度的字符串对象映射成32位int值)生成的哈希值存在冲突. ...
- SWIFT MX报文基础函数与Java语言中String的方法对照理解
SWIFT MX报文基础函数与Java语言中String的方法对照理解 前言 一.SWIFT是什么? 二.SWIFT MX是什么? 二.报文基础函数与Java语言中String的方法对照表 总结 前言 ...
- postman里面的mockserver使用方法
最近更新的时候postman推荐了个好玩的功能–mockserver.相信用过fiddle的同学都用过fiddle的mockserver,那可是测试工程师的神器,今天就来玩下postman里面的moc ...
- java里面的ture和false
java里的ture和false不像c++中的bool型变量,在c++中ture和false都是有值的,分别为1和0,并且可以比较大小. 例如:(3>4)的值为0,(44)的值为1.所以(44) ...
- java里arraylist删除节点方法_Java之——删除ArrayList中的反复元素的2种方法
ArrayList是Java中最经常使用的集合类型之中的一个.它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元 ...
最新文章
- 清北顶会学霸:“表情”与“认知”引发的科学思辨 | 清华AI Time PHD
- BZOJ1095 [ZJOI2007]Hide 捉迷藏 【动态点分治 + 堆】
- 如何正确使用Git Flow 流程
- sql中常用的几种连接
- 远程办公第五天,你还在扩容吗?
- 【渝粤教育】 国家开放大学2020年春季 2542行政组织学 参考试题
- 安装oracle需要多少内存,针对大型内存配置的 Oracle VM 安装需要更多步骤 (7195262)...
- gcc -pthread_错误-在GCC Linux中使用C程序未定义对'pthread_create'的引用
- 服务器是怎么工作的?(二)——arp工作原理详细解析
- @mapper注解的使用_SpringBoot-Mybatis通用mapper使用
- html+css+dom补充
- pytorch中mask操作之torch.masked_select
- 第二季-专题11-世界一下变大了-MMU
- acid事务 mysql_MySQL 事务ACID特性
- 动态IP和静态IP有什么区别?
- com.Android.pngn.tlq,Android学习笔记(八)——四种基本布局
- 安然数据集分析处理_用自然语言处理分析安然会计丑闻
- SQL IF语句的使用
- Android开发笔记之视频录制
- 带你重新认识一下应用层协议