Java - 字符串

简介: Java - 字符串

image.pngimage.png

/*
 getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
 getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
*/
public class StringDemo3 {
  public static void main(String[] args) throws UnsupportedEncodingException {
    // 字符串和byte数组之间的相互转换
    // 定义一个字符串
    String str=new String("JAVA 编程 基础");
    // 将字符串转换为byte数组,并打印输出
    byte[] arrs=str.getBytes("GBK");
    for(int i=0;i<arrs.length;i++)
      System.out.print(arrs[i]+" ");
    // 将byte数组转换为字符串
    String str1=new String(arrs,"GBK");
    System.out.println(str1);
  }
}

image.png

  • 在UTF-8下,每个汉字占3个字节。
  • 汉字为负数是因为超过了128,溢出。
  • byte 和 String 在转换时,一定要注意编码一致。image.png字符串内存中的分配【★★★★★】

image.pngimage.png

  • 字符串的不可变性【★★★★★】
  • 定义:字符串本身不发生变化,都是通过赋值来改变的。
  • 缺点:如果字符串比较复杂的话,会生成很多中间变量。

字符串(StringBuilder & StringBuffer)image.pngimage.pngimage.png

public class StringBuilderDemo1 {
  public static void main(String[] args) {
    // 定义一个字符串"你好"
    StringBuilder str=new StringBuilder("你好");
    //在"你好"后面添加内容,将字符串变成"你好,imooc!"
      // str.append(',');
      // str.append("imooc!");
      // System.out.println("str="+str);
    System.out.println("str="+str.append(',').append("imooc!"));
    // 将字符串变成"你好,iMOOC!"
    // 两种方式:
    // 1、使用delete方法删除mooc,然后在插入MOOC
    // System.out.println("替换后:"+str.delete(4, 8).insert(4, "MOOC"));
    // 2、使用replace方法直接替换
    System.out.println("替换后:"+str.replace(4, 8, "MOOC"));
    // 在字符串"你好,iMOOC"中取出"你好"并输出
    System.out.println(str.substring(0,2));
  }
}

image.pngimage.png

  • 在单线程下基本都使用StringBuilder,在多线程中才会考虑使用StringBuffer。
目录
相关文章
|
5天前
|
Java
Java 替换字符串 replace replaceAll
【7月更文挑战第10天】Java 替换字符串 replace replaceAll
Java 替换字符串 replace  replaceAll
|
12天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解
|
19天前
|
Java 程序员
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
33 3
|
20天前
|
Java
java字符串分割split你用对了吗
java字符串分割split你用对了吗
15 1
|
21天前
|
Java API Apache
探讨Java中检测字符串是否包含数字和字母的技术
探讨Java中检测字符串是否包含数字和字母的技术
13 2
|
3天前
|
安全 Java
Java8 拼接字符串 StringJoiner
Java8 拼接字符串 StringJoiner
|
5天前
|
存储 安全 Java
Java面试题:请解释Java中的字符串和字符串缓冲区?
Java面试题:请解释Java中的字符串和字符串缓冲区?
6 0
|
6天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
10 0
|
7天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
14 0
|
10天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解