Java - 字符串


/*
 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);
	}
}

  • 在UTF-8下,每个汉字占3个字节。
  • 汉字为负数是因为超过了128,溢出。
  • byte 和 String 在转换时,一定要注意编码一致。

  • 字符串内存中的分配【★★★★★】


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

 

字符串(StringBuilder & StringBuffer)



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));
	}
}


  • 在单线程下基本都使用StringBuilder,在多线程中才会考虑使用StringBuffer。
发布了869 篇原创文章 · 获赞 1713 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/Dream_Weave/article/details/105046658