【发布时间】:2013-08-29 17:45:31
【问题描述】:
我正在尝试在一个大字符串中查找字符串“\r\n”(基本上是换行和返回)的所有索引。
我需要这样做,因为我必须将大字符串逐行写入 PDF 文件(我必须在写完前一行后调用我正在使用的 dll 的换行 API)。
这是代码的简短版本:-
string fileContents = "abc\r\n\r\ndef\r\nghi";
int pos = -1;
int start = 0;
while ((pos = fileContents.IndexOf("\r\n", start)) != -1)
{
//extract string
//write string to PDF
//call newline API
start = pos + 1;
}
fileContents 变量中“\r\n”的预期位置是 3,7 和 14。但是,在调试代码时,pos 变量中的值是 3、5 和 10。
我的 indexOf() 调用似乎有什么问题?
【问题讨论】:
-
我认为您的假设是错误的,您能否详细说明您是如何得出 3、7 和 14 的?
-
\r和\n算作 1 而不是 2,因为 '\n' 是一个字符