【发布时间】:2015-03-31 11:30:02
【问题描述】:
我用 Java 编写了一个可以用字符串初始化的简单游戏。为了设置板,我的程序用换行符或竖线分隔字符串。如果字符串使用竖线,则游戏可以完美运行,但当字符串使用换行符时,游戏将无法正常运行。这是我遇到问题的代码:
String rowSeparator, indexChar;
if(board.indexOf("|") >= 0) {
rowSeparator = "\\|";
indexChar = "|";
} else {
rowSeparator = "\\n";
indexChar = "\n";
}
columns = board.indexOf(indexChar); //this one is set to -1 when the error occurs (\n instead of vertical bars)
rows = board.split(rowSeparator).length; //this one is set to 1
这是一个有效的字符串示例:
"*###########*|# #|# ... ... #|# *$$ $.$ #|# $*+$ $*$$ #|# *$$ $.$ #|# ... . #|# #|*###########*"
如果我用“\n”替换竖线,它不会返回正确的列和行值。有人可以帮我理解我做错了什么吗?
编辑:我不知道这是否相关,但是当我运行调试器时,使用换行符的字符串的值为 "########### \\n# #\\n# ... ... #\\n# $$ $.$ #\\n# $+$ $*$$ #\\n# $$ $.$ #\\n# ... . #\\n# #\\n###########*”。它有两个反斜杠,而不是一个(我是这样输入的)。这会是个问题吗?
【问题讨论】:
-
不要使用
\\n,只使用\n -
"没有为列和行返回正确的值" 它返回什么值?目前尚不清楚您的代码 cmets 是否与“\n”分隔的示例有关。
-
字符文字应该用单引号括起来,'\n' != "\n" ?
-
TheLostMind 我试过了,但它仍然给我一个错误。
-
它不应该.. 你得到什么错误?