【发布时间】:2019-01-22 01:04:03
【问题描述】:
在这里待了好几个小时。 indexOf() 函数永远不会返回 > -1,即使我在串行监视器中看到字符打印,并且字符串的长度随着字符的进入而增加。
String command;
void loop() {
while ( bleuart.available() ) {
char ch;
ch = bleuart.read();
command += ch;
Serial.print(ch);
}
Serial.println(command.length());
if(command.indexOf("\n") > -1 ) {
Serial.println("command:");
Serial.println(command);
}
}
【问题讨论】:
-
您在串行监视器中看到新行吗?还是只是一个长字符串? \n 是换行符
-
只是一个长字符串 - 没有新行。 \n 似乎什么也没做。
-
如果你在字符串中看到 \n 那么这实际上是 "\\"+" n" 字符。仅用于检查更改 indexof 以查找“\\n”并查看是否匹配
-
@darc 这行得通!虽然不太明白为什么。 “\n”如何变成“\\n”?
-
基本上,\ 是用于转义序列的特殊字符,例如 '\n' 代表换行。所以如果你想把\打印成字符串,你需要添加\来转义它“\\”,另一个例子:假设你想在一个字符串中使用“你需要用\来转义它,就像这样”\“”。你可以在这里看到完整的转义序列列表”en.wikipedia.org/wiki/Escape_sequences_in_C
标签: string bluetooth arduino char indexof