熟悉String方法的使用之判断文件名是否合法
学习之余,写个小练习来巩固一下String的方法应用。
任务:
1、判断用户选择要输入的内容的类型
2、如果是java文件,输出“您输入的是java文件名”
3、如果是邮箱地址,输出“您输入的是邮箱地址”
4、如果都不是,输出“无法解析您输入的内容”
代码如下:
1 public static void main(String[] args) { 2 Scanner in = new Scanner(System.in); 3 boolean flag = true; 4 do { 5 System.out.println("请您要判断的内容:"); 6 String name = in.next(); 7 8 switch (Jude(name)) { 9 case 1: 10 System.out.println("您输入的是java文件名"); 11 flag = false; 12 break; 13 case 2: 14 System.out.println("您输入的是邮箱地址"); 15 flag = false; 16 break; 17 case -1: 18 System.out.println("无法解析您输入的内容,请重新输入!"); 19 break; 20 } 21 } while (flag); 22 in.close(); 23 } 24 25 /* 26 * 判断格式 27 */ 28 private static int Jude(String Name) { 29 30 int count1 = 0;// 字符串中包含.的个数 31 int count2 = 0;// 字符串中包含@的个数 32 33 for (int i = 0; i < Name.length(); i++) {// 统计个数 34 if (Name.charAt(i) == ‘.‘) { 35 count1++; 36 } 37 if (Name.charAt(i) == ‘@‘) { 38 count2++; 39 } 40 } 41 if (count1 == 1 && count2 == 1) { 42 // 获取邮箱中"@"符号的位置 43 int index2 = Name.indexOf(‘@‘); 44 // 获取邮箱中"."号的位置 45 int index3 = Name.indexOf(‘.‘); 46 if (index2>0 && index3-index2> 1&&index3!=Name.length()-1) {// 判断必须包含"@"符号,且"@"必须在"."之前 47 48 return 2; 49 } 50 } 51 if (count1 > 0) { 52 // 获取文件名中最后一次出现"."号的位置 53 int index = Name.lastIndexOf(‘.‘); 54 // 获取文件的后缀 55 String prefix = Name.substring(index); 56 57 // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java" 58 if (index != -1 && index != 0 && prefix.equals(".java")) { 59 60 return 1; 61 } 62 } 63 return -1; 64 65 }
运行结果:
这是按照我自己理解写的小程序,主要是用来熟悉String类的方法的使用,可能有很多需要改进的地方,如果有错误的地方请指出来谢谢!!
时间: 2024-11-14 18:29:48