JAVA基础——编程练习(三)
熟悉String方法的使用之判断文件名是否合法
学习之余,写个小练习来巩固一下String的方法应用。
任务:
1、判断用户选择要输入的内容的类型
2、如果是java文件,输出“您输入的是java文件名”
3、如果是邮箱地址,输出“您输入的是邮箱地址”
4、如果都不是,输出“无法解析您输入的内容”
代码如下:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean flag = true;
do {
System.out.println("请您要判断的内容:");
String name = in.next();
switch (Jude(name)) {
case 1:
System.out.println("您输入的是java文件名");
flag = false;
break;
case 2:
System.out.println("您输入的是邮箱地址");
flag = false;
break;
case -1:
System.out.println("无法解析您输入的内容,请重新输入!");
break;
}
} while (flag);
in.close();
}
/*
* 判断格式
*/
private static int Jude(String Name) {
int count1 = 0;// 字符串中包含.的个数
int count2 = 0;// 字符串中包含@的个数
for (int i = 0; i < Name.length(); i++) {// 统计个数
if (Name.charAt(i) == '.') {
count1++;
}
if (Name.charAt(i) == '@') {
count2++;
}
}
if (count1 == 1 && count2 == 1) {
// 获取邮箱中"@"符号的位置
int index2 = Name.indexOf('@');
// 获取邮箱中"."号的位置
int index3 = Name.indexOf('.');
if (index2>0 && index3-index2> 1&&index3!=Name.length()-1) {// 判断必须包含"@"符号,且"@"必须在"."之前
return 2;
}
}
if (count1 > 0) {
// 获取文件名中最后一次出现"."号的位置
int index = Name.lastIndexOf('.');
// 获取文件的后缀
String prefix = Name.substring(index);
// 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
if (index != -1 && index != 0 && prefix.equals(".java")) {
return 1;
}
}
return -1;
}
运行结果:


这是按照我自己理解写的小程序,主要是用来熟悉String类的方法的使用,可能有很多需要改进的地方,如果有错误的地方请指出来谢谢!!
JAVA基础——编程练习(三)的更多相关文章
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 50道JAVA基础编程练习题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- 50道JAVA基础编程练习题 - 题目
50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...
- [Java并发编程(三)] Java volatile 关键字介绍
[Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...
- MQ java 基础编程
MQ java 基础编程 编写人:邬文俊 编写时间 : 2006-2-16 联系邮件 : wenjunwu430@gmail.com 前言 通过 2 个多星期对 MQ 学习,在 partner 丁 & ...
- java基础解析系列(三)---HashMap
java基础解析系列(三)---HashMap java基础解析系列 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ...
- java 网络编程(三)---TCP的基础级示例
下面是TCP java网络编程的基础示例: tcp传输:客户端建立过程的思路:1.创建TCP客户端的Socket服务,使用的是socket对象,建议在创建的过程中,就明确了目的地和要连接的主机2.如果 ...
- JAVA基础——编程练习(二)
JAVA编程练习(二) 今天我为了巩固之前的java基础知识的学习,再次进行实战演习,编写了一个小小的java控制台程序,主要是运用java面向对象的思想来完成这个小项目. 一.项目背景介绍 根据所学 ...
- Java多线程编程核心技术(三)多线程通信
线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体.线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
随机推荐
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- Linux的基本指令shell
计算机语言的进化过程,7代语言 机器语言(6种位运算)-> 汇编语言->C语言 -> C++/Java -> Paython / go /Ruby -> 自 ...
- 【HDU 6031]】 Innumerable Ancestors
题意 有一棵有n个结点的树,这里有m个询问,每个询问给出两个非空的结点集合A和B,有些结点可能同时在这两个集合当中.你需要从A和B中分别选择一个节点x和y(可以是同一个结点)你的目标是使LCA(x,y ...
- Bootstrap 中的 aria-label 和 aria-labelledby 属性
这两个属性是为特殊网页阅读器设置的属性,在一些特殊设备上,当浏览到这样的内容设备会将内容读出来.是为了一些有视力障碍的人能够同样”浏览”网页而准备的. 转自http://blog.csdn.net/l ...
- sequelize 批量添加和更新数据 bulkCreate
sequelize提供了批量插入数据的方法:Model.bulkCreate([…object]). 例如: let updatePhone = [{userName: '李白‘},{userNam ...
- 流Stream
System.IO 提供了一个抽象类Stream , Stream类 支持对字节的读写操作.所谓的“流”,指的是Stream,也就是所谓的一个文件区.这个文件区中存储着的信息可以是在内存中,也可以是在 ...
- Intent对象若干数据项的含义总结
Intent作为组件之间通信的手段和协议,包含了诸如Action.Data.Type.Category.Component.Extras和Flags等数据项,各自拥有各自的含义和作用.当调用组件发出一 ...
- Entity Framework Tutorial Basics(43):Download Sample Project
Download Sample Project: Download sample project for basic Entity Framework tutorials. Sample projec ...
- 实践作业3:白盒测试----小组分工讨论DAY2
白盒测试需要通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致.我们小组在下课时候,在东九教学楼教师休息室进行了 ...
- URAL 1204. Idempotents (扩展欧几里得)
题目链接 题意 : 给你一个同余方程, x*x ≡ x (mod n),让你求出所有的小于n的x. 思路 : 先来看同余的概念 :给定一个正整数m,如果两个整数a和b满足a-b能被m整除,即m|(a ...