首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
工具类-获取控制台输入
返回列表
发新帖
工具类-获取控制台输入
[复制链接]
发表于 2023-2-18 11:38:02
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
/**
* 工具类的作用
* 处理各种情况下用户的输入,并且能够按照程序员的要求,得到用户的控制台输入。
*/
public class Utility {
//静态属性
private static Scanner scanner = new Scanner(System.in);
/**
*
功能
:读取键盘输入的一个菜单选项,值:1-5的范围
*
* @return 1-5
*/
public static char readMenuSelection() {
char c;
while (true) {
String str = readKeyBoard(1, false);
c = str.charAt(0);//将字符串转换为字符char
if (c != '1' && c != '2'
&& c != '3' && c != '4' && c != '5') {
System.out.println("选择错误,请重新输入!");
} else break;
}
return c;
}
/**
*
功能
:读取键盘输入的一个字符,如果直接按回车,则返回指定的默认值
*
* @param defaultValue 指定的默认字符串
* @return 默认值或输入的字符
*/
public static char readChar(char defaultValue) {
String str = readKeyBoard(1, true);//要么是空串,要么是输入的字符串
return (str.length() == 0 ? defaultValue : str.charAt(0));
}
public static char readChar() {
String str = readKeyBoard(1, false);//要么是空串,要么是输入的字符串
return str.charAt(0);
}
/**
*
功能
:读取键盘输入的整型,长度小于2位
*
* @parameter 整数
*/
public static int readInt(int defaultValue) {
int n;
while (true) {
String str = readKeyBoard(10, true);
if (str.equals("")) {
return defaultValue;
}
//异常处理
try {
n = Integer.parseInt(str);
break;
} catch (NumberFormatException e) {
System.out.println(e);
}
}
return n;
}
/**
* 功能:读取键盘输入的指定长度的字符串
*
* @return 指定长度的字符串
* @parameter limit 限制的长度
*/
public static String readString(int limit) {
return readKeyBoard(limit, false);
}
/**
* 功能:读取键盘输入的指定长度的字符串或默认值,如果直接回车,返回默认的字符串
*
* @param limit 限制的长度
* @param defaultValue 指定的默认值
* @return 指定长度的字符串
*/
public static String readString(int limit, String defaultValue) {
String str = readKeyBoard(limit, true);
return str.equals("") ? defaultValue : str;
}
/**
* 功能:从键盘读取输入的选项,Y/N
* 将小的功能封装到一个方法中
*
* @return Y/N
*/
public static char readConfirmSelection() {
System.out.println("请输入你的选择(Y/N),请小心选择:");
char c;
while (true) {//无限循环
//在这里,将接受到字符,转成了大写字母
//y=>Y n=>N
String str = readKeyBoard(1, false).toUpperCase();
c = str.charAt(0);
if (c == 'Y' || c == 'N') {
break;
} else {
System.out.println("选择错误,请重新输入:");
}
}
return c;
}
/**
* 功能:从键盘读取字符串
*
* @param flag 判断是否严格
* @param limit 是否可以为空字符串
* @return str 符合要求的字符串
*/
public static String readKeyBoard(int limit, boolean flag) {
String str;
do {
str = scanner.nextLine();
if (str.length() == 0) {
if (flag == false) {
while (true) {
System.out.println("请输入:");
str = scanner.nextLine();
if (str.length() != 0) {
break;
}
}
} else
return "";
}
if (str.length() > limit){
System.out.print("请输入长度不大于" + limit +"的字符串:");
}
}while (str.length() > limit);
return str;
}
}
复制
代码
回复
使用道具
举报
返回列表
浏览过的版块
前端开发
SQL-Server
Oracle
物联网
SAAS
人工智能
数据仓库与分析
.Net
开源技术
程序人生
风雨同行
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表