#java #string #char
#java #строка #символ
Вопрос:
Я работаю над сложным кодом для Java, в котором я должен создать программу, которая: 1) использует заглавную букву первого слова входного предложения, 2) использует заглавную букву слова «I» и 3) расставляет знаки препинания в предложении, если нет надлежащей пунктуации. Я написал код легко, но это немного неаккуратно. В частности, мне было интересно, как бы вы использовали специальный символ для условного обозначения.
например,
String sentence = IO.readString(); /* IO.readstring is irrelevant here, it's just a scanning class that reads a user input*/
int length = sentence.length();
char punctuation = sentence.charAt(length - 1);
if (punctuation != "." || punctuation != "?" || punctuation != "!")
{
sentence = sentence ".";
}
это выдает мне ошибку несовместимых типов при попытке ее компиляции (несовместимые типы: char и java.lang.string)
Как бы мне написать это условие?
Ответ №1:
Когда вы используете ""
, это подразумевает строку. Для символов используйте '.'
(одинарную кавычку).
Ответ №2:
Используйте одинарные кавычки для символов в java:
if (punctuation != '.' || punctuation != '?' || punctuation != '!')
Я не проверял вашу логику, поскольку вопрос был мне не совсем понятен.
Ответ №3:
Литеральные символы заключены в одинарные кавычки: 'x'
.
Строки литералов заключены в двойные кавычки: "x"
.
Символы являются примитивами, в то время как строки являются объектом ( java.lang.String
класса), и вы не можете сравнивать примитивы с объектами.
Ответ №4:
Короткий способ проверки нескольких символов — использовать String.indexOf
if (".?!".indexOf(punctuation) < 0)
sentence = '.';