十四.String及常用方法

17.19String类

1.String类型的两种声明方式
//方式一
String str = "狗蛋";
String str2 = "狗蛋";
//方式二
String str3 = new String("狗蛋");
String str4 = new String("狗蛋");
System.out.println(str == str2);//true
//== 比较的是内存地址
System.out.println(str == str3);//false
//equal比较的是地址,如果地址不一样 再去比较内容。如果内容一样就是true
//开发中字符串的比较使用的是equals
System.out.println(str.equals(str3));//true

​ 1.使用方式一声明的字符串存在堆中的一个字符串常量池中,这个地方要求不能有重复的内容,所以str1和str2内容相同,指向的是同一个地址。

​ 如果str2 = ”狗蛋233“; 则会在字符串常量池中再开辟一个存储空间,此时和str指向的地址就不同了

​ 2.使用方式二new出来的对象存储在堆空间中,就算内容一样,但是指向的地址也是不一样的

在这里插入图片描述

2.String类方法

关注三点:

  1. 方法功能
  2. 方法参数
  3. 返回值

boolean equals(Object obj) ; 判断字符串内容是否相等

int length( ) ; 获取字符串长度

char charAt(int index) ; 获取指定下标处的字符

int indexOf(String str) ; 获取指定字符在字符串中第一个出现的下标

int lastIndexOf(int ch) ; 获取指定字符在字符串中最后一次出现的下标

package com.qfedu.a_string;


public class Demo1 {
	public static void main(String[] args) {
		//equals方法  判断字符串是否相等
		String str1 = "abc";
		String str2 = "abc";
		/**
		 * str1==> char[] ch1 = ['a','b', 'c'];
		 * str2==> char[] ch2 = ['a', 'b', 'c']
		 * while循环 ch1[i] == ch2[i]
		 */
		System.out.println(str1.equals(str2));//true
		System.out.println("abc".equals("ced"));//false
		
		System.out.println("abcdef".length());//6
		System.out.println("abcd".charAt(2));//c
		System.out.println("bbccaa".indexOf("c"));//2
		System.out.println("bbccaa".indexOf('c'));//2
		System.out.println("abcdadf".lastIndexOf('a'));//4
		
	}

}

返回值是布尔类型数据的方法

boolean endWith(String str) ; 判断是否以指定字符(串)结尾

boolean isEmpty( ) ; 判断字符串是否为空

boolean contains( String str) ; 在一个字符串中是否包含另一个字符串

boolean equalsIgnoreCase( ) ; 忽略大小写比较字符串是否相等

package com.qfedu.a_string;

public class Demo3 {
	public static void main(String[] args) {
		String str1 = "Demo1.java";
		System.out.println(str1.endsWith(".java"));//true
		System.out.println(str1.endsWith("av"));//false
		
		System.out.println("".isEmpty());//true
		System.out.println("ab".isEmpty());//false
		System.out.println(" ".isEmpty());//false
		
		System.out.println("不破楼兰终不还".contains("不还"));//true
		System.out.println("不破楼兰终不还".contains("还不"));//false
		System.out.println("abc".equals("Abc"));//false
		System.out.println("abc".equalsIgnoreCase("ABc"));//true
	}

}

*开发要用的重要方法:

  1. 将字符数组转为字符串

    (1)使用String类的构造方法 String( char[ ] ch ) ;

    (2)static String valueOf( char[ ] chs) ; 将字符数组转为字符串(静态方法 ) *【重点】

    valueOf方法有较多的重载,八大基本数据类型都可以转

  1. 将字符串转为字符数组

    char[ ] toCharArray( ) ; 将字符串转为字符数组【重点】

package com.qfedu.a_string;

public class Demo4 {
	public static void main(String[] args) {
		char[] chs = {'a','g', 'e'};
		//转为字符串
		String str = new String(chs);
		System.out.println(str);
		String str1 = String.valueOf(chs);
		System.out.println(str1);
		String str2 = String.valueOf(98.76);
		System.out.println(str2);//字符串类型的98.76
		//一个double类型的数据 98.7654。取小数点后面的数
		
		char[] chs1 = "我是狗蛋我怕谁".toCharArray();
		System.out.println(chs1);
		for (int i = 0; i < chs1.length; i++) {
			System.out.println(chs1[i]);
		}
	}

}
  1. String replace( char oldChar, char newChar ) ; 在字符串中用新的字符替换老的字符
  2. String[ ] split(String regex) ; 以指定字符串进行切割,将结果片段存到字符串数组中
  3. String subString( int beginIndex ) ; 从指定位置开始截取字符串
  4. String subString(int beginIndex, int endIndex);从指定的位置开始截取字符串到指定的位置结束
  5. String toUpperCase( ) ; 将小写字符转为大写
  6. String toLowerCase( ) ; 将大写字符转为小写
  7. String trim( ) ; 去掉首尾空格
package com.qfedu.a_string;

import java.util.Arrays;

public class Demo5 {
	public static void main(String[] args) {
		System.out.println("abcd".replace('a', '狗'));
		System.out.println("abcd".replace("cd", "中国牛皮"));
		
		//切割一个字符串
		//["ab", "cd", "ef"]
		//["a", ",cd,ef"]
		String[] strs  = "ab&cd&ef".split("&");
		System.out.println(Arrays.toString(strs));
		
		String str1 = "abcdef".substring(2);
		System.out.println(str1);//cdef
		//要头不要尾
		String str2 = "abcdef".substring(2, 4);
		System.out.println(str2);//cd 
		
		System.out.println("ava".toUpperCase());
		System.out.println("ABDF".toLowerCase());
		System.out.println("  gsi  jsjj   ");
		System.out.println("  gsi  jsjj   ".trim());
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值