java - 验证扫描仪只允许字符
问题描述
这是我的第一个问题。我正在上一个在线编码课程,它的指令肯定有一些漏洞。我们的任务是获取 2 个仅是一个字符的不同输入,并将它们转换为 ASCII 值。我对此感到沮丧,我正在努力解决我应该如何验证输入以仅允许一个字符,而不是诸如数字或符号之类的东西,然后在出现此类错误时退出程序。这是我的代码。
import java.io.*;
import java.util.*;
public class AndrewBrutonMod4TopSecret
{
public static void main(String args[])
{
Scanner kaReader = new Scanner(System.in);
System.out.println("Enter the first initial of your first name:");
String i1 = kaReader.next();
System.out.println("Enter the first initial of your last name:");
String i2 = kaReader.next();
char a = i1.charAt(0);
char b = i2.charAt(0);
char a1 = Character.toUpperCase(a);
char b1 = Character.toUpperCase(b);
int c = (int)a;
int d = (int)b;
System.out.println("Initials: "+a1+" "+b1);
System.out.println("Encrypted Initials: "+c+" "+d);
}
}
有什么想法吗?
解决方案
我正在努力解决我应该如何验证输入以只允许一个字符,而不是诸如数字或符号之类的东西
您可以使用 isAlphabetic() 方法
Java 文档:
确定指定字符(Unicode 代码点)是否为字母表。如果由 getType(codePoint) 提供的字符的一般类别类型是以下任何一种,则该字符被认为是字母字符:
大写字母
小写字母
标题字母
MODIFIER_LETTER
OTHER_LETTER
LETTER_NUMBER
或者它具有 Unicode 标准定义的贡献属性 Other_Alphabetic。
private static boolean isValidChar(char ch) {
return Character.isAlphabetic(ch);
}
如果出现此类错误则退出程序
例如
if (!isValidChar(a))
System.exit(-1);
推荐阅读
- android - 以编程方式更改 Drawable 的背景,保持圆角半径
- javascript - Lerna 能否根据 Conventional Commits 规范修改预发布版本?
- react-native-svg - React Native 忽略 SVG 组件上设置的宽度 100%,但它确实适用于 React Native Web
- java - 能否使用 Flutter MethodChannel 从 Java 返回原生地图
- wordpress - 如何在用户列表 wordpress 中添加昵称?
- extjs - ExtJS 7:如何不同加载无法捆绑的包资源
- performance - react-navigation BottomTabNavigator 在某些 Android 设备上非常慢
- python - 使用理解创建字典列表时如何省略键和值
- coq - 在 Coq 的大于命题中使用等价定理
- android - 如何为谷歌助手使用带有自定义 DialogFlow 操作的 android deeplink?