用户输入验证,强制字符串仅包含字母

2024-02-24

我试图在我的方法之一中创建一个用户输入验证系统......它在一定程度上工作正常,但是尽管有代码,它仍然允许整数作为有效输入,我不希望它成为这样,我怎么能更改此代码,仅允许字母(字符串)作为有效输入。我在这一点上感到困惑,我尝试了这个系统的整数,它工作完美,但字母,无济于事。

Insight?

public class Player {

    private static String userName;
    private Scanner scan = new Scanner(System.in);
    private boolean validInput = false;

    public void createUser(){

        do {
        System.out.println("Please enter you name : ");
                if(scan.hasNextLine()){
                    userName = scan.nextLine();
                    validInput = true;
                } else {
                    System.out.println("You can only use letters!");
                    validInput = false;
                    scan.next();
                }
    } while (!(validInput));
        System.out.println(getUser());
    }
    static void setUser(String userName){
        Player.userName = userName; 
    }
    String getUser(){
        return userName;    
    }

}

Replace

            if(scan.hasNextLine()){

with

            if(scan.hasNext("\\p{Alpha}*")){

如果你使用hasNextLine扫描仪仅检查是否有anything接下来,不是特别针对信件或其他任何东西。

当您使用正则表达式时,在这种情况下p{Alpha}*这意味着“零个或多个字母”(但扫描仪将查找至少一个不是空格的字符,因此它实际上是“1个或多个字母”),扫描仪的行为与您执行相同操作时非常相似hasNextInt()(正在寻找数字)。

请注意,它只接受 US-ASCII 范围内的字母,因此没有重音或挪威字母或类似的东西,只需a-zA-Z.

另外,读取用户名scan.next(), not nextLine()- 虽然你可能想打电话nextLine()稍后清洁生产线的其余部分。如果你使用nextLine()读取用户名,字母后面可能有一些不是字母的东西,它会被读取nextLine().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用户输入验证,强制字符串仅包含字母 的相关文章

随机推荐

  • 如何解决显示类似文件名使用两次的错误

    我正在使用 Xcode 7 3 1 快速工作 现在我得到了错误显示文件名使用两次我遇到了以下错误
  • 如何在 Rails 中预览电子邮件?

    这可能是一个愚蠢的问题 但是当我在 Rails 中整理 HTML 电子邮件时 是否有一种特别简单的内置方法可以在浏览器中预览模板 或者我是否需要编写某种自定义控制器来提取它作为它的观点 Action Mailer 现在有一个内置的方式预览电
  • 使用 ARC+ASIHTTPRequest 进行任何级别的优化,iPhone SIGSEGV 都会崩溃

    我目前使用 ASIHTTPRequest 进行同步请求 我最近重构了我的代码以符合 ARC 并使用编译器标志省略 ASIHTTPRequest 类 fno objc arc 我有一个 mh execute header当我使用任何类型的优化
  • Numpy View Reshape without Copy(2d 移动/滑动窗口、跨步、屏蔽内存结构)

    我有一个图像存储为二维 numpy 数组 可能是多维 我可以在该数组上创建一个反映二维滑动窗口的视图 但是当我重新调整它的形状 使每一行都是一个扁平的窗口 行是窗口 列是该窗口中的像素 时 python 会制作一个完整的副本 这样做是因为我
  • 如何获取blade.php中输入的值

    我需要获取要在下面使用的输入值 该怎么做 我试图喜欢这个 但错误说 未定义的变量 名称 div class col md 10 col md offset 1 div
  • 用php检查数组中是否存在值

    我正在开发一个带有 API 的项目 我从表格中收集数据并将其发送到他们的网站 通过数组收集数据 然后编码为 json 格式 pers payload array gender gt Unknown or Male Female first
  • ID 为“spock”​​的 Spock TestEngine 未能发现测试

    当我用Spock运行单元测试时 出现异常 Internal Error occurred org junit platform commons JUnitException TestEngine with ID spock failed t
  • 用于检查资源是否存在的 REST 标准

    检查资源是否存在的 REST 方法是什么 假设您有一些名为 项目 的资源 据我轻描淡写 其中一种方式是 获取资源 GET rest projects 123 GET rest projects someCriteria GET rest p
  • Django 1.7:提供 pdf 文件(UnicodeDecodeError)

    我正在尝试使用 django 1 7 提供 PDF 文件 这基本上是 应该 工作的代码 如果我将 content type 更改为 文本 并用它下载 tex 文件 它当然可以工作 但是当我用二进制文件尝试 得到 UnicodeDecodeE
  • 在 Gherkin 中使用正确的语法

    查找有关 Gherkin 的文档似乎非常困难 所以我想知道是否有一种方法可以增强步骤定义以使测试人员能够使用正确的语法 有一个例子可以说明我的意思 Testing Then I see there is 1 item More testin
  • Rails 4 + Capistrano 3:部署:检查不起作用

    我可以成功通过 SSH 连接到我的服务器 然而 当我这样做时deploy check 它给了我这个 Nets Mac Pro mysite emai be cap staging deploy check INFO e67f845c Run
  • Git:通过标签从远程拉取

    我是 git 的初学者 通过创建一个本地存储库来进行拉取和推送 在本地计算机上测试了几个命令 我在 project 中设置了一个裸存储库 并从中克隆了两个用户 user1 和 user2 该项目当前具有文件 one txt two txt
  • 如何使用 AppleScript 按类别过滤 Outlook for Mac 日历事件

    我正在尝试在 OSX 上编写一个 Applescript 以根据事件类别 例如 日历事件 过滤 Outlook for Mac 2011 日历事件 查找标记为 会议 的所有活动 例如 我有一个名为 WWDC 的日历事件 可以通过以下脚本找到
  • 通过 SoapClient 连接到 eBay Trading API 会抛出“Web 服务 eBayAPI 未正确配置或未找到且已禁用”异常

    我正在尝试连接到 eBay 交易 API 并使用 PHP 的 SoapClient 类发出基本请求 但遇到了麻烦 我已经花了几个小时搜索和摆弄示例 但我无法让任何东西发挥作用 所以我编写了以下准系统代码 并试图让它工作 token toke
  • 如何创建适合移动设备的网站[基础设施]

    如果我想创建一个相对较小的网站的移动友好版本 最好有一个子域 该子域可以重定向到具有单独标记和样式的全新网址 或者最好在代码中检测用户代理并以编程方式更改到不同的移动友好样式表 或者他们是我忽略的更好的基于基础设施的解决方案 Thanks
  • 如何将 gltf 编码/压缩为 draco

    我想使用 draco 在三个 js 和 Reactjs 中以编程方式压缩 编码 gltf 文件 我不想使用任何命令行工具 我希望以编程方式完成 请给我建议一个解决方案 我尝试使用 gltf pipeline 但它在客户端不起作用 当我在re
  • ReactJs 地图在 IE10 中未定义

    我看到类似的问题并尝试了一切但没有帮助 我收到错误 map is undefined in ie10 和 ie11 在我的项目上进行此更改后 ie11 可以工作 但 ie10 不能 在我的 package json 中 browsersli
  • 独立加速发生器

    我需要开发一个独立的 Acceleo 生成器 但我不知道如何启动 我已经在 Acceleo 项目中完成了生成器 Acceleo 项目包含generate mtl 文件 Generate java 文件和Activator java 文件 我
  • Xamarin.Forms(可为空)DatePicker:缺少确定和取消事件的解决方法

    我正在使用可为空的DatePicker https developer xamarin com api type Xamarin Forms DatePicker 它是通过子类化来实现的DatePicker并使用自定义渲染器 public
  • 用户输入验证,强制字符串仅包含字母

    我试图在我的方法之一中创建一个用户输入验证系统 它在一定程度上工作正常 但是尽管有代码 它仍然允许整数作为有效输入 我不希望它成为这样 我怎么能更改此代码 仅允许字母 字符串 作为有效输入 我在这一点上感到困惑 我尝试了这个系统的整数 它工