当我写出我的字符串时,它告诉我字符串文字没有正确关闭,但看起来它是......?然后,如果我取出/ | \,错误向下移动2行到腿。我研究过,似乎无法知道问题是什么......
public static void printMan(int badGuesses) {
String[] man = new String[];
man={"______",
"| |",
"| o",
"| |",
"| /|\", //it tells me that i need to insert missing quote
"| |",
"| / \"
};
int counter = 0;
while (counter < badGuesses) {
System.out.println(man[counter]);
}
答案 0 :(得分:9)
\
是escape character,在这种情况下你也需要逃避它。否则,你会得到一个未终止的字符串。 \"
表示实际字符"
,而不是字符串的开头或结尾。
如果你想要实际角色\
,你也需要逃避它:\\
String[] man = new String[]{
"| |",
"| o",
"| |",
"| /|\\", \\<- note the extra \
"| |",
"| / \\" \\<- note the extra \ here too
};
请参阅官方java教程中的section on escape sequences:
以反斜杠(\)开头的字符是转义序列,对编译器具有特殊含义。下表显示了Java转义序列(me:链接中的表)
StringLiteral:
"StringCharacters"
StringCharacters:
StringCharacter
| StringCharacters StringCharacter
StringCharacter:
InputCharacter but not " or \
| EscapeSequence
EscapeSequence:
\ b
\ t
\ n
\ f
\ r
\ "
\ '
\ \ < - **THIS IS THE ONE YOU HAD**
OctalEscape /* \u0000 to \u00ff: from octal value */
维基百科也有关于转义字符的interesting article:
在计算和通信中,转义字符是一个字符,它对字符序列中的后续字符调用另一种解释。转义字符是元字符的特殊情况。一般来说,判断某事物是否属于逃避角色取决于背景。
注意到:
C,C ++,Java和Ruby都允许完全相同的两种反斜杠转义样式。
以下是关于转义字符串的another related question here on SO。
答案 1 :(得分:2)
这是因为您正在使用转义字符。\"
会导致"
被考虑,添加\\"
man={"______",
"| |",
"| o",
"| |",
"| /|\\", \\ and extra slash here
"| |",
"| / \\" \\ and here
};
答案 2 :(得分:2)
你也声明了数组的错误,如果你使用initializater必须以这种方式导致,如果不是你必须为数组提供大小。
String[] man = new String[]{"______",
"| |",
"| o",
"| |",
"| /|\\",
"| |",
"| / \\"
};
答案 3 :(得分:0)
\
是一个转义字符。你必须再次逃避它,所以最后一行应该是:
"| / \\"
答案 4 :(得分:0)
public static void printMan(int badGuesses){
String[] man = new String[];
man={"______",
"| |",
"| o",
"| |",
"| /|\", //it tells me that i need to insert missing quote
"| |",
"| / \"
};
int counter = 0;
while (counter < badGuesses) {
System.out.println(man[counter]);
}
建议:1。在代码中使用的每个\之前添加一个额外的\。