我从文件中读取内容,然后在编辑后将其写入另一个文件。在编辑时,对于每个读取行,我在行尾添加逗号,然后将其写入文件。对于最后一行读取,我不想写逗号。我应该怎么做。?
while(!inputFile.AtEndOfStream){
var readLine = inputFile.ReadLine();
var omitChars = new RegExp("#define").test(readLine);
if(omitChars==1){
var stringReadPosition = readLine.substr(8);
var finalString = stringReadPosition.replace(/\s+/g, ': ');
asd = outputFile.Write(finalString.replace(/^(_)/, "") + ",\r\n");
}
}
outputFile.Write("};\r\n");
inputFile.Close();
outputFile.Close();
}
答案 0 :(得分:2)
您可以使用substring
在形成字符串后删除字符串的最后一个字符:
finalString = finalString.substring(0, finalString.length - 1);
另一种选择是slice
的使用,考虑到负指数是相对于字符串的结尾:
finalString = finalString.slice(0,-1);
请查看this问题了解更多信息。
更新:对于您的情况,您可以检查您是否已达到EOF - 意味着您已阅读最后一行,然后应用slice
或substring
:
//....
var stringReadPosition = readLine.substr(8);
var finalString = stringReadPosition.replace(/\s+/g, ': ');
//Check if stream reached EOF.
if(inputFile.AtEndOfStream) {
finalString = finalString.slice(0,-1);
}
asd = outputFile.Write(finalString.replace(/^(_)/, "") + ",\r\n");
//....
答案 1 :(得分:0)
试试这个asd = asd.replace(/,\ s * $ /,""); 这将删除最后一个逗号,我已经尝试了这个,它的工作。检查它是否在你的代码中工作。 在循环
中尝试此代码