Java基础 16

版权声明: https://blog.csdn.net/qq_40794602/article/details/86912984

String字符串的转换功能:

	public static void main(String[] args) {
		//String类的转换功能
		System.out.println("========byte[] getBytes():把字符串转换为字节数组========");
		String s1 = "520java";
		//NSDate = byte[]
		byte[] bytes = s1.getBytes();
		for(int i = 0; i < bytes.length;i++){
			System.out.println(bytes[i]);
		}
		
		
		System.out.println("=========char[] toCharArray():把字符串转换为字符数组========");
		String s2 = "java";
		char[] chs = s2.toCharArray();
		for(int i = 0; i < chs.length;i++){
			System.out.println(chs[i]);
		}
		
		System.out.println("=======static String valueOf(char[] chs):把字符数组转成字符串========");
		char[] chs2 = {'L','O','V','E'};
		String s3 = String.valueOf(chs2);
		System.out.println("s3=" + s3);
		
		
		System.out.println("=======static String valueOf(int i):把int类型的数据转成字符串========");
		int a = 97;
		String s4 = String.valueOf(a);
		System.out.println(s4);
//		注意:String类的valueOf方法可以把任意类型的数据转成字符串
		
		
		System.out.println("========String toLowerCase():把字符串转成小写=====");
		String s5 = "HELLO,HOW ARE YOU!";
		s5 = s5.toLowerCase();
		System.out.println("s5:" + s5);
		
		
		System.out.println("=======String toUpperCase():把字符串转成大写=====");
		String s6 = "hi,麻辣鸡斯";
		s6 = s6.toUpperCase();
		System.out.println("s6:" + s6);
		
		
//		String concat(String str):把字符串拼接,且只能拼接字符串。+ 方式拼接字符串时,可以是任意类型
		System.out.println("=======String concat(String str):把字符串拼接,且只能拼接字符串======");
		String s7 = "When";
		String s8 = " you go home?";
		String s9 = s7.concat(s8);
		//String s9 = s7 + s8 + 98;
		System.out.println("s9:" + s9);
		
	}

String字符串的其它功能:

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//String类的其它功能
//		public String replace(char oldChar, char newChar)//替换字符
		String s1 = "hello";
		s1 = s1.replace('l', 'y');
		System.out.println("s1:" + s1);
		
//		public String replace(CharSequence target, CharSequence replacement) //替换字符串
		//CharSequence,接口,字符系列
		//String是CharSequence的实现类
		String s2 = "I Love You!";
		s2 = s2.replace("Love", "Hate");
		System.out.println("s2:" + s2);
		
//		String trim();//去除前后空格
		String s3 = " Java Gosling ";
		System.out.println("s3:" + s3);
		s3 = s3.trim();
		System.out.println("s3:" + s3);
		
//		public int compareTo(String anotherString) //比较字符串的大小
		String s4 = "abc";
		String s5 = "abc";
		int result = s4.compareTo(s5);
		System.out.println("s4 pk s5 = " + result);
		
//		public int compareToIgnoreCase(String str) //比较
		String s6 = "AbB";
		String s7 = "aBc";
		System.out.println("s6 pk s7 = " + s6.compareToIgnoreCase(s7));

	}

StringBuffer类概述:

  • StringBuffer线程安全的可变字符序列
  • StringBuffer内部实现是字符数组
  • StringBuffer和String的区别【面试题】:String是一个不可变的字符序列 ;StringBuffer是一个可变的字符序列;StringBuffer线程安全,可以加锁

StringBuffer类的构造方法:

  • public StringBuffer():【开发中常用此构造方法,构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
  • public  StringBuffer(int capacity) :构造一个不带字符,但具有指定初始容量的字符串缓冲区。
  • public  StringBuffer(CharSequence seq): 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。
  • public  StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
  • EG:
    	public static void main(String[] args) {
    		
    		/*构造方法1.StringBuffer类的构造方法
    			public StringBuffer():【开发中常用此构造方法】
    			构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。*/
    		StringBuffer sb1 = new StringBuffer();
    		System.out.println("sb1的初始容量:" +sb1.capacity());//内部字符数组的初始容量
    		System.out.println(sb1.length());//字符串的长度
    		
    		
    		/*构造方法2.public  StringBuffer(int capacity) :
    			构造一个不带字符,但具有指定初始容量的字符串缓冲区。*/
    		StringBuffer sb2 = new StringBuffer(24);
    		System.out.println("sb2的初始容量:" + sb2.capacity());
    		
    		
    		/*构造方法3.public  StringBuffer(CharSequence seq): 
    			构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。 */
    		StringBuffer sb3 = new StringBuffer("sb,你好吗?");
    		System.out.println("sb3的初始容量:" + sb3.capacity());
    		System.out.println("sb3:" + sb3);
    		
    		/*构造方法4.public  StringBuffer(String str):
    		 * 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。  */
    		String s = "sb,你好吗?";
    		StringBuffer sb4 = new StringBuffer(s);
    		System.out.println("sb4的初始容量:" + sb4.capacity());
    		System.out.println("sb4:" + sb4);
    	}

     

StringBuffer的添加功能:

  • public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
  •  public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

StringBuffer的删除功能:

  • public StringBuffer deleteCharAt(int index): 删除指定位置的字符,并返回本身
  • public StringBuffer delete(int start,int end): 删除从指定位置开始指定位置结束的内容,并返回本身

StringBuffer的替换和反转功能:

  • StringBuffer的替换功能 【public StringBuffer replace(int start,int end,String str)】:从start开始到end用str替换
  • StringBuffer的反转功能【public StringBuffer reverse()】:字符串反转

StringBuffer的截取功能及注意事项:

  • public String substring(int start):从指定位置截取到末尾
  • public String substring(int start,int end):截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
  • 注意事项 :返回值类型不再是StringBuffer本身

StringBuffer和String的相互转换:

	public static void main(String[] args) {
		//StringBuffer和String的相互转换
		
		/*	1.String –> StringBuffer
		1.1通过构造方法
		1.2通过append()方法 */
		
		String s = "Hello,Gosling,Thx";
		
		//1.1通过构造方法
		StringBuffer sb1 = new StringBuffer(s);
		System.out.println("sb1:" + sb1);
		
		//1.2通过append()方法
		StringBuffer sb2 = new StringBuffer();
		sb2.append(s);
		System.out.println("sb2:" + sb2);
		
/*		2.StringBuffer -> String 
		2.1通过构造方法 
		2.2通过toString()方法
		2.3通过subString(start); */
		
		StringBuffer sb = new StringBuffer("Gosling,Where Are You!");
		
		//2.1通过构造方法 
		String s1 = new String(sb);
		
		//2.2通过toString()方法
		String s2 = sb.toString();//这种最方便
		
		//2.3通过subString(start); 
		String s3 = sb.substring(0);
		
		System.out.println("s1:" + s1);
		System.out.println("s2:" + s2);
		System.out.println("s3:" + s3);
	}

StringBuffer和StringBuilder的区别:

  • 通过查看API了解下StringBuilder,与StringBuffer对比,方法基本一样
  • StringBuffer是jdk1.0版本的,是线程安全的,效率低
  • StringBuilder是jdk1.5版本的,是线程不安全的,效率高

String 和StringBuffer,StringBuilder的区别:

  • String是一个不可变的字符序列
  • StringBuffer,StringBuilder是可变的字符序列

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/86912984