Character.isDigit() 错误:找不到 isDigit(String) 的合适方法

Kepp 在使用 Character.isDigit() 时出现错误


我在其他地方查找过它并在那里进行了良好的测试,但我在这里不断遇到此错误。


  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.");

  }

根据扫描仪输入预期为真或假。不断向我抛出这个错误:


CheckingPasscodes.java:12: error: no suitable method found for isDigit(String)

  hasDigit = Character.isDigit(passCode);

                      ^

method Character.isDigit(char) is not applicable

  (argument mismatch; String cannot be converted to char)

method Character.isDigit(int) is not applicable

  (argument mismatch; String cannot be converted to int)


泛舟湖上清波郎朗
浏览 106回答 4
4回答

慕田峪4524236

该方法Character.isDigit()接受 achar作为输入 - 您试图将 a 传递给它String。该错误描述了问题所在:参数不匹配;字符串无法转换为字符

沧海一幻觉

错误是hasDigit = Character.isDigit(passCode); Character.isDigit()需要一个字符作为参数,但您传递了字符串。所以纠正这个将字符串转换为字符。你可以试试     Scanner scnr = new Scanner(System.in);  boolean hasDigit;  char passCode;  hasDigit = false;  passCode =  scnr.next().charAt(0);  hasDigit = Character.isDigit(passCode);  if (hasDigit) {     System.out.println("Has a digit.");  }  else {     System.out.println("Has no digit.");  }

神不在的星期二

Scanner.next 方法将从输入流返回整个标记(通常是单词)。这些词是字符串。Character.isDigit 函数需要一个字符作为输入,而不是一个字符串。您可以循环该单词,将每个字母作为字符获取并测试它们:for (int i = 0; i < passCode.length(); i++){&nbsp; &nbsp; char c = passCode.charAt(i);&nbsp; &nbsp; if (Character.isDigit(c)) {&nbsp; &nbsp; &nbsp; &nbsp; hasDigit = true;&nbsp; &nbsp; }}

天涯尽头无女友

我发现这对我有用。我使用 charAt() 将字符串中的每个指定索引设置为字符值。从那里我创建了一个 if 语句,如果任何 char 变量有数字,则将 hasDigit 设置为 true,使用 Character.isDigit() 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java