欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Java复习Day18

Java复习Day18

2025/5/27 13:05:04 来源:https://blog.csdn.net/Lanii_/article/details/148195425  浏览:    关键词:Java复习Day18

String 字符串类复习笔记

1. 简介

  • String 类是引用类型,不是基本数据类型
  • 表示不可变的 Unicode 字符序列,初始化后内容不可更改
  • 被 final 修饰,不能有子类

2. 创建方式

静态创建

String str = "abc";
在方法区常量池创建唯一字符串对象,相同字符串的引用变量地址相同。

动态创建

String str = new String("abc");
在堆内存创建新对象,共产生两个对象。

3. 构造方法

  • new String();
  • new String("abc");
  • new String(char[]);
  • new String(char[], int offset, int length);
  • new String(byte[]);
  • new String(byte[], int offset, int length);

4. 连接操作符

String str = "abc";
String str1 = "def";
String str2 = "abcdef";System.out.println(str2 == str + str1);  // false - 变量相加会先创建新对象
System.out.println(str2 == "abc" + "def");  // true - 直接拼接后查找常量池
System.out.println(str2.equals(str + str1));  // true
System.out.println(str2.equals("abc" + "def"));  // true

5. 常用方法

基本信息

  • length():返回字符串长度
  • equals(String):比较字符串内容
  • equalsIgnoreCase(String):不区分大小写比较内容

查找方法

  • indexOf(int/String):查找首次出现位置,不存在返回-1
  • indexOf(int/String, int fromIndex):从指定位置开始查找
  • lastIndexOf(int/String):查找最后一次出现位置
  • lastIndexOf(int/String, int fromIndex):从指定位置反向查找

6. 案例:邮箱验证

public class CheckEmail {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请输入email地址");String email = scanner.next();if (validateEmail(email)) {System.out.println("有效的email地址");break;}System.out.println("无效的email地址");}}public static boolean validateEmail(String email) {int at = email.indexOf("@");int lastAt = email.lastIndexOf("@");int dot = email.lastIndexOf(".");return at != -1 && at == lastAt && dot > at + 1 && dot != email.length() - 1;}
}

其他方法

  • toUpperCase()/toLowerCase():大小写转换
  • charAt(int):获取指定位置字符
  • substring(int)/substring(int,int):字符串截取
  • trim():去除前后空格
  • concat(String):字符串连接
  • getBytes()/toCharArray():转换为字节/字符数组
  • contains(String):判断是否包含子串
  • startsWith(String)/endsWith(String):判断开始/结尾
  • replace()/replaceAll():字符串替换
  • split(String):按正则分割字符串
  • matches(String):正则匹配

7. 验证码案例

public class CheckCode {public static void main(String[] args) {String code = generateCode(4);System.out.println(code);Scanner scanner = new Scanner(System.in);System.out.println("请输入验证码");String userInput = scanner.next();System.out.println(code.equalsIgnoreCase(userInput) ? "验证码正确" : "验证码错误");}public static String generateCode(int length) {String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder code = new StringBuilder();for (int i = 0; i < length; i++) {int index = (int)(Math.random() * chars.length());code.append(chars.charAt(index));}return code.toString();}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词