我正在研究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)
我将如何编写此条件?
答案 0 :(得分:9)
使用隐含字符串的""
时。
对于字符,请使用'.'
(单引号)。
答案 1 :(得分:1)
对java中的字符使用单引号:
if (punctuation != '.' || punctuation != '?' || punctuation != '!')
我没有检查过你的逻辑,因为我的问题并不完全清楚。
答案 2 :(得分:0)
字面字符由单引号分隔:'x'
。
文字字符串由双引号分隔:"x"
。
字符是基元,而字符串是对象(java.lang.String
类),并且您无法将基元与对象进行比较。
答案 3 :(得分:0)
检查多个字符的简写是使用String.indexOf
if (".?!".indexOf(punctuation) < 0)
sentence += '.';