首页 > 解决方案 > 验证扫描仪只允许字符

问题描述

这是我的第一个问题。我正在上一个在线编码课程,它的指令肯定有一些漏洞。我们的任务是获取 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);
    }
}

有什么想法吗?

标签: java

解决方案


我正在努力解决我应该如何验证输入以只允许一个字符,而不是诸如数字或符号之类的东西

您可以使用 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);

推荐阅读