【高级编程】实用类详解(中)String类及其常用方法 含判断邮箱格式案例

devtools/2024/9/22 14:16:31/

文章目录

    • String
      • int length()
      • String equals()
      • char charAt()
      • String replace()
      • 其他常用方法
      • 判断邮箱格式案例

String

String类位于java.lang包中,具有丰富的方法:计算字符串的长度、比较字符串、连接字符串、提取字符串…

使用String对象存储字符串

java">String s = "Hello World";
String s = new String();
String s = new String("Hello World");

int length()

确定字符串的长度

// 注册新用户,要求密码长度不能小于6位 
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入用户名:");String name = scanner.next();System.out.print("请输入密码:");String pwd = scanner.next();if (pwd.length() < 6 ){System.out.println("密码长度不能小于6位!");} else {System.out.println("注册成功!");}
}

String equals()

比较存储在两个字符串对象的内容是否一致

// 注册成功后,实现登录验证。用户名为“TOM”,密码为“1234567” 
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入用户名:");String name = scanner.next();System.out.print("请输入密码:");String pwd = scanner.next();if ("TOM".equals(name) && "1234567".equals(pwd)){System.out.println("登录成功!");} else {System.out.println("用户名或密码不匹配,登录失败!");}
}

"=="和 equals() 的区别

equals(): 检查组成字符串内容的字符是否完全一致

==: 判断两个字符串在内存中的地址,即判断是否是同一个字符串对象

字符串比较的其他方法

  • 使用 equalsIgnoreCase() 忽略大小写

  • 使用 toLowerCase() 小写

  • 使用 toUpperCase() 大写

java">// 登录时不考虑用户名的大小写问题,实现登录 
Scanner scanner = new Scanner(System.in);
System.out.print("请输入用户名:");
String name = scanner.next();
System.out.print("请输入密码:");
String pwd = scanner.next();
if ("TOM".equalsIgnoreCase(name) && "1234567".equals(pwd)){System.out.println("登录成功!");
} else {System.out.println("用户名或密码不匹配,登录失败!");
}

char charAt()

返回指定索引位置的字符

java">// 例 1
String str = "Hello, World!";
char ch = str.charAt(7);
System.out.println("字符串中的字符: " + ch); // W// 例 2
String content = "我爱你中国,中国我爱你";
int count = 0;
for (int i = 0; i < content.length(); i++) {if (content.charAt(i) == '爱') {count++;}
}
System.out.println("content中含'爱'字个数:" + count);

如果传递给 charAt() 方法的索引超出了字符串的范围(小于 0 或大于等于字符串长度),将会抛出 StringIndexOutOfBoundsException 异常。

String replace()

replace 方法用于替换字符串中的某些字符或子字符串。全部替换

方法签名

public String replace(CharSequence target, CharSequence replacement)

public String replace(char oldChar, char newChar)

java">String content = "你这人傻子吧,你是个傻子吧";
content = content.replace("傻子","**");
System.out.println(content); // 输出:"你这人**吧,你是个**吧"String content = "你这2人傻子吧1,5你4是个3傻子吧";
content = content.replaceAll("\\d","\\$");
System.out.println(content); // 输出:"你这$人傻子吧$,$你$是个$傻子吧"

其他常用方法

方法名说明
public int indexOf(int ch)搜索第一个出现的字符ch,如果没有找到,返回-1
public int indexOf(String value)搜索第一个出现的字符串value,如果没有找到,返回-1
public int lastIndexOf(int ch)搜索最后一个出现的字符ch,如果没有找到,返回-1
public int lastIndexOf(String value)搜索最后一个出现的字符串value,如果没有找到,返回-1
public String substring(int index)提取从位置索引开始的字符串部分
public String substring(int beginindex, int endindex)提取beginindex和endindex之间的字符串部分(前闭后开)
public String trim()返回一个前后不含任何空格的调用字符串的副本
public String concat(String value)字符串拼接
public boolean endsWith(String value);判断字符串是否以指定字符串结尾
public String[] split()分割字符串,返回数组
java">// indexof()
int index = str.indexof("l");
System.out.println("查询某个指定字符是否存在:"+index); // 输出:2// lastIndexof()
int lastindex = str.lastIndexof("l");
System.out.println("查询某个指定字符是否存在:"+lastindex); // 输出:3// substring(开始位置<包含>,结束位置<不包含>)
String email = "7777@gg.cn.com";
string sub = email.substring(email.lastIndexof(".") + 1,email.length());
System.out.printin(sub); // 输出:com// trim() 去除左右空格
String msg = "  今天中午 吃什么?  ";
msg = msg.trim();
System.out.printin(msg); // 输出:今天中午 吃什么?// concat()
String str = "hello";
System.out.println("字符串拼接:" + str1.concat(",aa")); // 输出:hello,aa// endsWith()
String imgName = "1.jpg";
boolean bool = img.endsWith("png");
System.out.printIn("是否为png格式:" + bool); // 输出:false// split()
String arr = "1001+1002+1003";
String arrs[] = arr.split("\\+");
System.out.printIn(Arrays.tostring(arrs)); // 输出:[1001,1002,1003]

判断邮箱格式案例

判断邮箱格式是否正确 例如: 777@99.com
1. 邮箱中必须包含@和.操作符
2. @必须在.之前
3. @于.之间必须存在1个以上字符
4. @之前最少要有2个字符
5. 后缀名必须以com,cn,net结束
java">private static final Set<String> VALID_DOMAINS = new HashSet<>(Arrays.asList("com", "cn", "net"));public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入邮箱:");String content = scanner.next();if (isTrueEmail(content)) {System.out.println("邮箱格式正确!!!");} else {System.out.println("邮箱格式有误!!!");}
}private static boolean isTrueEmail(String email) {// 找到最后的"@"和"."操作符出现的位置int atIndex = email.lastIndexOf("@");int dotIndex = email.lastIndexOf(".");// 检查"@"和"."的条件if (atIndex == -1 || dotIndex == -1 || atIndex >= dotIndex - 2 || atIndex < 2) {return false;}// 检查"."是否在"@"后面if (dotIndex <= atIndex + 1) {return false;}// 检查后缀是否有效String domain = email.substring(email.lastIndexOf('.') + 1);return VALID_DOMAINS.contains(domain);
}

http://www.ppmy.cn/devtools/105834.html

相关文章

2.4 定时器与TIM中断

文章目录 时钟与时钟树stm32时钟树可以手动把系统时钟72mhz改成其他的吗&#xff1f;ST公司给的外围设备配置文件 的 默认配置说明 定时器什么是定时器定时器的类型影子寄存器 | 预装载寄存器&#xff08;Preload Register&#xff09;相关工程问题 通用定时器 相关框图定时中断…

搞了一年多的RAG,在业务上落地还是很有挑战

现在提到大模型落地&#xff0c;目之所及所有公司都在做RAG。RAG通过利用外部数据库来增强大模型&#xff0c;很大程度上解决了模型幻觉问题&#xff0c;以及知识更新和数据安全等问题。 如果在企业内落地大模型应用&#xff0c;还得从技术侧和业务侧共同入手。 技术层面上&a…

使用Spring Boot集成Redis缓存

在现代的Web应用中&#xff0c;缓存是提升性能和减少数据库压力的重要手段之一。而Redis作为一种高性能的分布式缓存存储&#xff0c;因其快速读写和支持多种数据结构的特点&#xff0c;广泛应用于各类项目中。 1. 准备工作 在正式开始集成Redis之前&#xff0c;需要确保Redi…

基于STM32的智能物料运载小车:OpenMV和OpenCV结合图像识别与运动控制算法优化(代码示例)

一、项目概述 智能物料运载小车项目旨在开发一款能够自主移动并进行物料搬运的智能设备。该小车通过多种传感器和智能控制算法&#xff0c;实现自动识别和搬运物料&#xff0c;提高物流效率&#xff0c;减少人工成本。项目的核心价值在于&#xff1a; 提高效率&#xff1a;通过…

基于vue框架的超市订单管理系统16uob(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;员工,商品分类,商品信息,供货商,入库订单,销售订单,货架信息,盈利信息 开题报告内容 基于Vue框架的超市订单管理系统开题报告 一、研究背景与意义 随着信息技术的飞速发展和电子商务的普及&#xff0c;传统超市管理模式正面临前所未有…

【hot100篇-python刷题记录】【数据流的中位数】

R7-堆篇 from heapq import * class MedianFinder:def __init__(self):#建立小根堆&#xff0c;保存大的一半self.A[]#大根堆,B中的存储都是负数形式self.B[]def addNum(self, num: int) -> None:if len(self.A)!len(self.B):heappush(self.B,-heappushpop(self.A,num))else…

当过村干部不知存折是啥样,预感离世将所有债务还清

当过村干部不知存折是啥样&#xff0c;预感离世将所有债务还清 --在家父袁某新遗体告别仪式上的悼词 这是一篇儿子向终年63岁父亲致的悼词 &#xff08;范文点评&#xff09; 尊敬的各位长辈、各位亲朋好友、各位父老乡亲&#xff1a; 苍天落悲泪&#xff0c;大地起寒风。冬…