java内部类及string方法

面向对象

一、内部类

1、内部类

​ 类部内就是在一个类中,再编写另一个类。内部类的种类:成员内部类、静态内部类、局部内部类、匿名内部类

a、匿名内部类
创建子类的时候可以使用匿名内部类,使你的代码更加简洁,匿名内部类只能被使用一次

image-20220402103257004

b、成员内部类(了解)

image-20220402110326273

c、局部内部类(了解)

内部类不光可以直接定义在外部类中作为成员内部类,也可以定义在方法中,作为局部内部类。

局部内部类也叫区域内嵌类,局部内部类与成员内部类类似,不过,区域内嵌类是定义在一个方法中的内嵌类。

主要特定有:

  • 局部内部类只能在对应方法中访问,在方法外无效
  • 不能使用private,protected,public修饰符。
  • 不能包含静态成员
  • 局部内部类如果想要访问方法中的局部变量时,局部变量必须是常量。因为局部变量时分配在栈中,而局部内部类是分配在堆中的,有可能出现这样的情况,外部类的方法执行完了,内存被回收了,但是局部内部类可能还在,所以在访问局部变量时,做了一个拷贝将局部变量拷贝到局部内部类所在的堆中。为了保证数据的完整性,所以这里被拷贝的变量不允许再做修改。

image-20220402110400378

二、String

1、获取方法

方法说明
int length()获取字符串的长度(*)
char charAt(int index)获取指定位置的字符(index 下标 )
int indexOf(String str)获取指定字符首次出现的位置
int lastIndexOf(String str)获取指定字符最后一次出现的位置
		String s = "hello";
		/**
		 * 一.获取方法
		 */
		//1、获取长度
		int len = s.length();
		System.out.println("字符串的长度为:"+len);
		//2.获取指定下标位置的字符(字符串中的每个字符都有下标,下标从0开始)
		char c = s.charAt(4);
		System.out.println(c);
		//3.获取指定字符首次出现的下标
		int index = s.indexOf("l");
		System.out.println(index);

2、判断方法(*)

方法说明
boolean endswith(String str)测试此字符串是否以指定的后缀结束
boolena isEmpty()字符串长度是否为0 jdk1.6新特性
boolean contains(CharSequences s)是否包含指定值 应用:搜索
boolean equals(Object objec)判断两个字符串值是否相等
boolean equalsIgnoreCase(String str)忽略大小写是否相等
startsWith(String prefix)测试此字符串是否以指定的前缀开始。
		/**
		 * 二.判断方法
		 */
		//1.equals
		String s1 = "world";
		boolean r1 = s1.equals(s);
		System.out.println(r1);
		
		String s2 = "www.woniuxy.com";
		//2.判断字符串是否以指定的后缀结束
		boolean r2 = s2.endsWith(".com");
		System.out.println(r2);
		//3.判断字符串是否为空--判断长度
		String s3 = "";
		boolean r3 = s3.isEmpty();
		System.out.println(r3);
		//4.判断字符串是否包含指定的值
		boolean r4 = s2.contains("wo");
		System.out.println(r4);
		//5.比较两个字符串是否相等,并忽略大小写
		String s4 = "WWW.WoniuXy.Com";
		boolean r5 = s4.equalsIgnoreCase(s2);
		System.out.println(r5);
		//6.判断字符串是否以指定的内容开头
		boolean r6 = s2.startsWith("www.");
		System.out.println(r6);

3、转换方法

方法说明
String toUpperCase()小写转大写
String toLowerCase()大写转小写
char[] toCharArray()将字符串转换为字符数组
new String(char[] array)将字符数组转为字符串
		/**
		 * 三.转换
		 */
		String s5 = "Hello";
		//1.小写转大写
		String newS1 = s5.toUpperCase();
		System.out.println(newS1);
		//2.大写转小写
		String newS2 = s5.toLowerCase();
		System.out.println(newS2);
		//3.字符串转字符数组
		char[] arr = s5.toCharArray();
		//字符数组可以直接打印
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		//4.字符数组转字符串
		String newStr = new String(arr);
		System.out.println(newStr);

4、其他方法(*)

方法说明
String replace(char oldChar, char newChar)使用指定的值替换替换此字符串所有匹配的字符
String[] split(String regex)根据指定字符将字符串切割为数组
String substring(int beginIndex)从指定位置截取到最后
String substring(int beginIndex, int endIndex)截取指定长度的字符串
String trim()去除字符串首尾空格
		/**
		 * 四.其它方法
		 */
		String str = "woniuxy";
		//1.替换--被替换的内容,替换后的内容
		String newStr1 = str.replace("woniu", "***");
		System.out.println(newStr1);
		//2.切割(注意,不能对点和*进行切割)
		String str2 = "aa-bb-cc-dd";
		String[] arr2 = str2.split("-");
		for (int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);
		}
		//3.截取
		String s6 = "www.woniuxy.com";
		//a.从指定下标截取到字符串末尾
		String newS6 = s6.substring(3);
		System.out.println(newS6);
		//b.指定截取的下标区间--不包含结束下标
		String newS7 = s6.substring(3, 7);
		System.out.println(newS7);
		//4去除字符串的首尾空格
		String s7 = "  aaa   bbb  cc   ";
		String newS8 = s7.trim();
		System.out.println(newS8);
		//5.去除字符串的所有空格
		String newS9 = s7.replace(" ", "");
		System.out.println(newS9);

6、补充

a.字符串的遍历
		/**
		 * 	字符串的遍历
		 */
		String str8 = "www.xxxx.com";
		//方式一
		for(int i=0;i<str8.length();i++) {
			char b = str8.charAt(i);
			System.out.println(b);
		}
		
		System.out.println("----------------------");
		//方式二
		char[] arr3 = str8.toCharArray();
		for (int i = 0; i < arr3.length; i++) {
			System.out.println(arr3[i]);
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值