当前位置: 首页 > 知识库问答 >
问题:

Java isLetter() 在我的 Initials 程序中出现错误 [已关闭]

平山
2023-03-14

想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

我目前正在用java编写一个程序,它接受一个人的名字和姓氏,并将其转换为大写首字母。当输入数字或根本没有输入时,程序也应该打印错误。这是我的代码



import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        
        // Get strings from user
        Scanner input = new Scanner(System.in);
        
        System.out.print("First name: ");

        String first = input.next();  
        first = first.toUpperCase();

        System.out.print("Last name: ");
        String last = input.next();
        last = last.toUpperCase().substring(0, 1);
        

        if (Character.isLetter(first) == '9' || Character.isletter(last) == '1')
        {
            System.out.println("Error");
        }
     // Displays the initials.
    System.out.println("Your initials are " + first.charAt(0) + last);
        }
}
        

我期望程序拒绝数值和无效值,例如不输入任何内容,但它不起作用。

共有1个答案

林劲
2023-03-14

您的代码有几个问题,您拼错了isletter,正如Rob所提到的,isletter返回一个布尔值而不是字符,并接受一个字符而不是字符串。

您也没有验证完整的姓氏,只有第一个字符。类似这样的东西可能更接近您正在寻找的东西:

    public static void main(String[] args) {

      // Get strings from user
      Scanner input = new Scanner(System.in);

      System.out.print("First name: ");
      String first = input.next();
      if (!isValidName(first)) {
        System.err.printf("Invalid fist name %s%n", first);
        return;
      }

      System.out.print("Last name: ");
      String last = input.next();
      if (!isValidName(last)) {
        System.err.printf("Invalid last name %s%n", first);
        return;
      }

      // Displays the initials.
      System.out.printf("Your initials are %s.%s.%n", first.toUpperCase().charAt(0), last.toUpperCase().charAt(0));
    }

    private static boolean isValidName(String name) {
      if (name.isEmpty()) {
        return false;
      }
      for (char c: name.toCharArray()) {
        if (!Character.isLetter(c)) {
          return false;
        }
      }
      return true;
    }
    ```
 类似资料:
  • 我试图做一个java程序,但我有一个问题与输出。

  • 我有一个问题编译以下漏洞代码: http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c 我使用的是"gcc file. c"和"gcc-O2 file. c",但是这两个文件都会导致以下错误: 我试着在Kali Linux和Ubuntu上编译它们

  • 我写这个软件的一个项目作业,但我有麻烦与混合线程和tkinter。下面的部分基本上和预期的一样工作,但是当我关闭它(在Python shell中启动它之后)时,窗口显示一个错误:“Python停止工作”。 我怎样才能解决这个问题?是不是我现在使用的设计造成的?我应该改变它吗? 编辑1:当我删除在中声明,并且只使用引用问题已经解决,但是我需要有对GUI对象的引用,首先要构建GUI,还要从GUI对象获

  • 错误: log4j:WARN找不到记录器(org.hibernate.cfg.annotations.Version)的appender。log4j:警告请正确初始化log4j系统。线程“main”组织中出现异常。冬眠例外GenericJDBCException:无法在组织上打开连接。冬眠例外SQLStateConverter。在org上处理非特定异常(sqlstatecoverter.java:

  • 我收到这条信息: 19-October-24 08:05:53:481信息线程-4 O.M.D.connection:71-关闭到MongoDB:27017的连接[ConnectionID{LocalValue:35,ServerValue:38}],因为池已关闭。 java.lang.IllegalStateException:状态应为:open at com.mongodb.assertion