字符串函数“CharAt”在“char”中存储和显示数值

时间:2017-09-17 06:29:55

标签: java.util.scanner charat string-function

好的家伙所以我正在使用这个字符串函数“charAT”来存储charater变量以存储在char r中。但我们知道用户可以输入任何内容。当用户输入数字值(如123或5)或charAt将其存储在char变量r中时。应该有例外,但事实并非如此。 char变量如何能够保存数值。我怎样才能解决这个问题?我希望“r”只保存char值,并希望在用户输入数值时发生异常。

#sudo docker run -i \
sudo docker run --detach \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.56.101/'; gitlab_rails['lfs_enabled'] = true;" \
  --hostname ubse-gitlab \
  --publish 443:443 --publish 80:80 --publish 23:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  --volume /srv/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \
  gitlab/gitlab-ce:9.5.4-ce.0

2 个答案:

答案 0 :(得分:1)

在Java中,Stringchar的值也可以接受数值。因此,如果输入123作为输入,那么字符串将是" 123"并且char将是1。如果您只想将字母表作为输入,那么您可以使用hasNext Java类中的Scanner方法来完成它。这将使用Regular Expression[A-Za-z]来确保只能输入字母。

while(true)
{
    try
    {
        System.out.println("Please enter the grade");
        while (!s1.hasNext("[A-Za-z]+")) {
            System.out.println("you have entered an invalid input. Please try again \n");
            s1.next();
        }
        str = s1.next();
        r = str.charAt(0);
        System.out.println("The grade is "+ r);
        break;
    }
    catch (Exception e)
    {
        System.out.println("There was an exception \n");
    }
}

答案 1 :(得分:0)

听起来你需要测试角色是否属于某个ASCII范围:

ascii = (int) str.toLowerCase().charAt(0);
if ( ( ascii >= (int) 'a' ) && ( ascii <= (int) 'f' ) ) {
    // Valid!
} else {
    // Invalid!
}