检查数字

时间:2019-02-26 05:30:41

标签: java

我正在尝试解决此问题。当来自扫描仪的三个字符的密码包含数字时,将方向设置为hasDigit为true。

下面的代码

import java.util.Scanner;

public class CheckingPasscodes {
   public static void main (String [] args) {
      Scanner scnr = new Scanner(System.in);
      boolean hasDigit;
      String passCode;

      hasDigit = false;
      passCode = scnr.next();

      hasDigit = Character.isDigit(passCode);
     
      
      

      if (hasDigit) {
         System.out.println("Has a digit.");
      }
      else {
         System.out.println("Has no digit.");
      }
   }
}

我已经输入了 hasDigit = Character.isDigit(passCode);

我的逻辑是character.isDigit正在从扫描仪检查密码,但我一直收到错误消息。

我也尝试过: hasDigit = Character.isDigit(0); 而第一个测试通过了,但另一个没有通过。据此,我假设我必须输入字符串,以便它可以测试任何内容,而不仅仅是位置0处的字符。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

for(int i = 0 ;i <passCode.length();i++) {
         hasDigit = Character.isDigit(passCode.charAt(i));
         if (hasDigit) {
             System.out.println("Has a digit.");
             break;
         }
}
if(!hasDigit) {
    System.out.println("Has no digit.");
}

可惜答案没有透露,但是如果您打算破坏学习过程,至少尝试提供正确的代码:/

答案 1 :(得分:-2)

字符类的

isDigit()函数,一个字符或整数除外。它不排除string,这就是为什么您会出错。您可以将代码修改为-

         hasDigit = false;
          passCode = scnr.next();

         for(int i = 0 ;i <passCode.length();i++) {
             hasDigit = Character.isDigit(passCode.charAt(i));
             if(hasDigit)
               break;
         }
          if (hasDigit) {
             System.out.println("Has a digit.");
          }
          else {
             System.out.println("Has no digit.");
          }

这将为您提供所需的结果。