java中string占几个字节,字符串类型占几个字节

  java中string占几个字节,字符串类型占几个字节

  首先,char是Java的基本类型,基本类型占用的字节数是固定的,比如4字节的int,8字节的double,可以使Java占用的类型在不同平台上固定,从而保证Java的可移植性。因此,Java中的char类型固定为2字节。(注:char类型也可以存储一个汉字)。

  其次,String采用一种更灵活的方式进行存储。在String中,一个英文字符占1个字节,而中文字符根据编码的不同所占字节数也不同。在UTF-8编码下,一个中文字符占3个字节;而使用GBK编码时一个中文字符占2个字节。

  测试代码如下:

  import Java . io . unsupportedencodingexception;

  公共类StrTest {

  公共静态void main(String[] args)引发了UnsupportedEncodingException {

  String str1= hello

  STR2=你好ABC ;

  System.out.println(在 UTF-8编码: str1.getBytes(utf-8 )下 hello 占用的字节数)。长度);

  system . out . println( gbk encoding: str 1 . getbytes( gbk )下 hello 占用的字节数)。长度);

  system . out . println( utf-8 UTF-8编码下 Hello abc 占用的字节数: str2.getBytes(utf-8 )。长度);

  system . out . println( Hello ABC 在 GBK编码: str2.getBytes(gbk )下占用的字节数)。长度);

  }

  }输出结果:

  utf-8编码中“hello”占用的字节数:5

  gbk编码下“hello”占用的字节数:5

  utf-8编码中“Hello abc”占用的字节数:9

  gbk码中‘你好ABC’占用的字节数:7。因此,对于字符串,一个英文字符占用1字节,而中文字符占用2 (GBK码)或3(UTF 8码)字节。也可以用这个方法检查其他代码的情况,这里不再赘述。

  最后,基于字符串的这个特性,可以判断一个字符串是否包含中文,例如:

  公共类StrTest {

  公共静态void main(String[] args)引发了UnsupportedEncodingException {

  searchChineseCharacter(早上好);

  SearchChineseCharacter(你好早上好);

  }

  //找出字符串中的汉字

  public static void search chinesecharacter(String str){

  //正则表达式,用于匹配汉字

  string regex=[\ u4e 00-\ u9fa 5];

  //如果str的长度和它占用的字节数不一样,说明它包含中文。

  if (str.length()!=str.getBytes()。长度){

  pattern pattern=pattern . compile(regex);

  matcher matcher=pattern . matcher(str);

  system . out . print( str 中的汉字是:);

  while (matcher.find()){

  system . out . print(matcher . group());

  }

  }

  否则{

  system . out . println( str 没有汉字);

  }

  }

  }输出结果:

  “早上好”中没有汉字

  ‘‘你好早上好’中的汉字是:早上好推荐教程:java入门。以上是java中字符串的详细内容,更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: