android基础学习-java篇day7-step3-第三节:java字符串

String常用方法

案例:使用String类常用方法完成字符串处理 

要求:

  1. 定义一个字符串"abcdefg"
  2. 取出子串cde并转换为大写
  3. 将DE替换为MM
  4. 最后得到结果CMM

 StringDemo.java

package com.demo.day7.wrap;

public class StringDemo {
	/*
	 * 案例:使用String类常用方法完成字符串处理 
	 * 要求:
	 * 定义一个字符串"abcdefg"
	 * 取出子串cde并转换为大写
	 * 将DE替换为MM
	 * 最后得到结果CMM
	 */

	public static void main(String[] args) {
		// 1定义一个字符串
		String str="abcdefg";
		//2取出子串cde substring(字符串开始位置,结束位置);
		String str1=str.substring(2, 5);
		//将cde转换成大写的 oUpperCase();
		String str2=str1.toUpperCase();
		//将DE替换成MM
		String str3=str2.substring(0, 1)+"MM";
		System.out.println("得到结果为"+str3);
				

	}

}

输出结果:

得到结果为CMM

字符串和byte数组之间相互转换

网络上都是以二进制进行传输的,所以要将String类型转换成byte数组。

package com.demo.day7.wrap;

public class Byte {

	public static void main(String[] args) {
		//字符串和数组之间的相互转换
		//1.定义一个字符串
		String str=new String("JAVA 编程 基础");
		//2.将字符串转换成byte数组,并打印输出
		byte[] arr=str.getBytes();
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
		}
		System.out.println();//换行
		//将byte数组转换成字符串
		String str1=new String(arr);
		System.out.println(str1);
		

	}

}

输出结果:

74 65 86 65 32 -25 -68 -106 -25 -88 -117 32 -27 -97 -70 -25 -95 -128 
JAVA 编程 基础

String 类的equals和 == 的区别

equals:判断内容是否相同

等于运算符 ==:判断地址是否相同

代码示例:

package com.demo.day7.wrap;

public class EqualsDemo {

	public static void main(String[] args) {
		// String类里equals和==的区别
		//1创建3个字符串
		String str1="hello";
		String str2="hello";
		String str3=new String("hello");
		String str4=new String("hello");
		char[] str5= {'h','e','l','l','o'};	
		System.out.println("str1和str2的内容相同"+(str1.equals(str2)));
		System.out.println("str1和str3的内容相同"+(str1.equals(str3)));
		System.out.println("====================");
		System.out.println("str1和str2的地址相同"+(str1==(str2)));
		System.out.println("str1和str3的地址相同"+(str1==(str3)));
		System.out.println("====================");
		System.out.println("str3和str4的内容相同"+(str3.equals(str4)));
		System.out.println("str3和str5的内容相同"+(str3.equals(str5)));
		System.out.println("str1和str5的内容相同"+(str1.equals(str5)));

	}

}

输出结果:

str1和str2的内容相同true
str1和str3的内容相同true
====================
str1和str2的地址相同true
str1和str3的地址相同false
====================
str3和str4的内容相同true
str3和str5的内容相同false
str1和str5的内容相同false

 分析:

 字符串的不可变性

  1. String对象一旦创建,则不可能修改,是不可变的
  2. 所谓的修改其实是创建新的对象,所指的内存 空间不变

StringBuilder的概述

 String 与StringBuilder的区别

String:具有不可变性,会产生很多中间变量,在常量池中产生很多废弃的数据

StringBuilder:不具备,可以避免String的情况

频繁操作字符串的时候:建议使用StringBuilder

StringBuff 和StringBuffer区别

二者基本相似,建议用StringBuilder

StringBuffer是线程安全的,线程安全相对没有的速度慢一些

单线程:使用StringBuilder

StringBuilder例子

package com.demo.day7.wrap;

public class StringDemo2 {
	/*
	 * 定义一个字符串,利用StringBuilder完成如下效果
	 * 效果图:
	 * 欢迎来到java世界
	 * 删除插入后:你好,java世界
	 * 替换后:欢迎来到java世界
	 */

	public static void main(String[] args) {
		// 定义一个字符串
		StringBuilder str=new StringBuilder("欢迎来到java世界");
		//删除插入后:你好,java世界
		str.delete(0, 4);//删除0-3的内容
		str.insert(0, "你好,");
		//等价 str.delete(0, 4).insert(0, "你好,");
		System.out.println(str);
		
		//替换后:欢迎来到java世界
		str.replace(0, 3, "欢迎来到");
		System.out.println(str);

	}

}

 输出:

你好,java世界
欢迎来到java世界

猜你喜欢

转载自blog.csdn.net/qq_17846019/article/details/82562105