чтение строки и печать символа - PullRequest
0 голосов
/ 02 ноября 2019

Я должен прочитать строку, преобразовать ее в нижний регистр, а затем вернуть первый символ в строке. Если первый символ не является строкой, я должен напечатать \0.

Я пробовал:

String ch = sc.nextLine();
char c = ch.charAt(0);
if (Character.isLetter(c)) {
    ch = ch.toLowerCase();
    c = ch.charAt(0);
    return c;
}
return '\0';

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Это исключение означает, что ваш сканер не нашел ничего для возврата из своего источника. Строки в Java не похожи на строки C, в которых есть хотя бы один символ ('\ 0'). Вы можете защитить программу от сбоя следующим дополнением:

    try
    {
        String ch = sc.nextLine();
        ch = ch.toLowerCase();
        char c = ch.charAt(0);
        if (Character.isLetter(c))
        {
            return c;
        }
        return '\0';
    }
    catch(StringIndexOutOfBoundsException ex)
    {
        System.out.println("You have entered an empty string");
    }
}
0 голосов
/ 02 ноября 2019

Вам необходимо изменить char переменные на String переменные с помощью String.valueOf(c), прежде чем их возвращать.

String ch = sc.nextLine();
char c = ch.charAt(0);
      if (Character.isLetter(c)) {
            ch = ch.toLowerCase();
            c = ch.charAt(0);
            return String.valueOf(c);
        }
   return String.valueOf('\0');
}

...