Educoder-练习-Java字符串之String类常用方法之文件名与邮箱验证

该代码示例展示了如何使用Java进行文件名和邮箱的有效性检查。通过lastIndexOf方法找到字符串中特定字符的位置,substring方法截取字符串部分来判断是否符合规范。对于Java文件名,检查是否以'.java'结尾;对于邮箱,确保'@'符号在'.'之前出现。
摘要由CSDN通过智能技术生成

这道题目相当有意思,难度适中,可以多看看

掌握知识点

  • lastIndexOf(‘参数’)方法,找到字符在字符串中的位置
  • substring(参数1,参数2)方法,从第参数1个下标获取,到参数2终止,获取字符串

通关源码

import java.util.Scanner;
public class StrTest {
    public static void main(String[] args) {

        
        Scanner scanner = new Scanner(System.in);

        String filename = scanner.nextLine();
        String email = scanner.nextLine();

        int beginIndex = filename.lastIndexOf(".");         //获取最后一个点出现的位置

        if(beginIndex != -1){
            //substring()方法:从第beginIndex下标截取,截取到末尾,返回lastName,然后直接用equals方法判断是否相等.java
           String lastName = filename.substring(beginIndex,filename.length());


            if(beginIndex != 0 && lastName.equals(".java")){
                System.out.println("Java文件名正确");
            }else{
                System.out.println("Java文件名无效");
            }
        }else{
            System.out.println("Java文件名无效");
        }

//lastIndexOf()方法, 获取字符串出现的位置,可以返回一个int类型
        int atIndex = email.lastIndexOf("@");         //获取最后一个@出现的位置
        int pointIndex = email.lastIndexOf(".");      //获取最后一个.出现的位置
        if(atIndex != -1 && atIndex < pointIndex){
            System.out.print("邮箱名正确");
        }else{
            System.out.println("邮箱名无效");
        }

    }   
}        // Scanner sc = new Scanner(System.in);
   

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,让我们开始第一关练习! ## 任务描述 本关任务是练习Java字符串处理中常用String方法,包括文件名邮箱验证。 请完成以下两个方法: 1. `public static boolean isValidFileName(String fileName)`:判断传入的文件名是否合法,合法返回`true`,否则返回`false`。文件名为非空字符串,不包含特殊字符`\/:*?"<>|`,且长度不超过100个字符。 2. `public static boolean isValidEmail(String email)`:判断传入的邮箱是否合法,合法返回`true`,否则返回`false`。邮箱为非空字符串,符合常规邮箱格式规则,即包含且仅包含一个`@`符号,且`@`符号前后均为非空字符串,且域名部分只包含字母、数字和`.`符号。 提示: 1. 使用正则表达式进行匹配。 2. 可以使用Java String中的`matches()`方法进行正则表达式匹配。 ## 测试用例 你可以使用以下测试用例来测试你的代码: ```java @Test public void testIsValidFileName() { assertTrue(StringUtils.isValidFileName("test.txt")); assertTrue(StringUtils.isValidFileName("dir/test.txt")); assertTrue(StringUtils.isValidFileName("dir\\test.txt")); assertFalse(StringUtils.isValidFileName("")); assertFalse(StringUtils.isValidFileName(null)); assertFalse(StringUtils.isValidFileName("test/")); assertFalse(StringUtils.isValidFileName("test\\")); assertFalse(StringUtils.isValidFileName(":test.txt")); assertFalse(StringUtils.isValidFileName("?test.txt")); assertFalse(StringUtils.isValidFileName("*test.txt")); assertFalse(StringUtils.isValidFileName("<test.txt")); assertFalse(StringUtils.isValidFileName(">test.txt")); assertFalse(StringUtils.isValidFileName("|test.txt")); assertFalse(StringUtils.isValidFileName("testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest.txt")); } @Test public void testIsValidEmail() { assertTrue(StringUtils.isValidEmail("test@test.com")); assertTrue(StringUtils.isValidEmail("test.test@test.com")); assertTrue(StringUtils.isValidEmail("test_test@test.com")); assertFalse(StringUtils.isValidEmail("")); assertFalse(StringUtils.isValidEmail(null)); assertFalse(StringUtils.isValidEmail("test@test")); assertFalse(StringUtils.isValidEmail("test@test.")); assertFalse(StringUtils.isValidEmail("test.com")); assertFalse(StringUtils.isValidEmail("test@com.")); assertFalse(StringUtils.isValidEmail("test@com")); assertFalse(StringUtils.isValidEmail("test@com.1")); assertFalse(StringUtils.isValidEmail("test@@test.com")); assertFalse(StringUtils.isValidEmail("test@te..st.com")); } ``` ## 参考实现 以下是参考实现,仅供参考。你可以使用任何一种编程语言来完成本关任务,不一定需要与参考实现完全相同。 ```java public class StringUtils { public static boolean isValidFileName(String fileName) { if (fileName == null || fileName.length() == 0 || fileName.length() > 100) { return false; } String regex = "[^/\\\\:*?\"<>|]+"; return fileName.matches(regex); } public static boolean isValidEmail(String email) { if (email == null || email.length() == 0) { return false; } String regex = "\\w+@\\w+(\\.\\w+)*"; return email.matches(regex); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼鬼骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值